提问者:小点点

React NativelocalhostSSL证书无效


几周前,我开始使用博览会启动这个React Native项目,直到昨天一切都很顺利。

当我运行expo start时,我像往常一样得到了Metro Bundler,我点击“在Web浏览器中运行”,像往常一样,VS Code终端提示我输入了一个localhost证书的密码输入。我不知道它是什么,但是有一个指向一些本地SSL签名工具的链接,我也不知道任何事情。即使有这个链接,我也不确定我应该输入什么密码,所以我只是按回车键而不输入任何东西,这就是我现在的处境。

我不能再在浏览器中运行我的应用程序了。每当我尝试这样做时,我都会得到这个:

日志只有这个:

PSD:\Projects\GroceryApp\GroceryApp. Web

在D:\Projects\GroceryApp\GroceryApp. Web开始项目

世博会开发工具正在http://localhost:19003

在浏览器中打开DevTools…(按shift-d禁用)

确保创建自动SSL证书(您可能需要使用sudo重新运行)

在19001端口启动Metro Bundler。

此环境不支持调试观看模式

调试检查较新版本的React Native

调试当前版本:0.61.4

debug未找到发布缓存

debug未找到发布缓存

调试检查GitHub上的新版本

debug未找到发布缓存

调试将“6d6386b01438c6ef0acd213d304b5839”保存到缓存

debug未找到发布缓存

debug未找到发布缓存

调试最新版本:0.60.0

隧道准备好了。

exp://192.168.0.108:19000

二维码

要通过实时重新加载运行应用程序,请选择以下之一:

•在Android或iOS的世博客户端中以“编辑”身份登录。您的项目将自动出现在“项目”选项卡中。

使用世博会应用程序(Android)或相机应用程序(iOS)扫描上面的二维码。

•按a for Android模拟器,或w在Web上运行。

按e通过电子邮件向您的手机发送链接。

显示所有可用命令的列表。

您的项目的日志将显示在下面。按Ctrl C退出。

所以,我尝试通过按W来强制它,然后我得到了这个:

尝试在Web浏览器中打开项目…

(node: 15116)UnhandledPromiseRejationWarning:错误:证书"D:\Projects\GroceryApp\GroceryApp.Web.expo\web\Development\ssl\cert-localhost.pem"无效。

(node: 15116)UnhandledPromiseRejationWarning:未处理的promise拒绝。此错误起源于在没有catch块的异步函数内部抛出,或者通过拒绝未使用.catch()处理的promise。要在未处理的promise拒绝时终止节点进程,请使用CLI标志--unhanded-rejtions=严格(参见https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。(拒绝id:6)

(node: 15116)[DEP0018]DeprecationWarning:未处理的promise拒绝被弃用。将来,未处理的promise拒绝将以非零退出代码终止Node.js进程。

这是有道理的,因为该文件完全是空的。

抱歉,我想确保所有的日志都在这里。

请帮忙。事先谢谢。


共2个答案

匿名用户

第一次使用选项--https启动expo应用程序时,它将创建一个最初不受信任的证书,并且在我的Mac上,该证书位于此处:

/Users/myname/Library/Application Support/devcert/certificate-authority/certificate.cert

此证书用于生成expo服务器用于TLS的. pem文件(位于此处:.expo/tls)。删除.pem文件是无用的,因为expo只会从您第一次尝试使用TLS/https为应用程序提供服务时创建的开发证书重新生成它们。因此,解决方案是将开发证书添加到受信任的根列表中,这可以通过以下方式完成(在osx上):

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain -p ssl -p basic '/Users/myname/Library/Application Support/devcert/certificate-authority/certificate.cert'

也许有人可以为Windows和/或Linix提供类似的解决方案。

匿名用户

我建议升级到更新版本的expo并再次运行。