无法使用 ngrok 连接到 https://localhost(使用 TLS / SSL)

Posted

技术标签:

【中文标题】无法使用 ngrok 连接到 https://localhost(使用 TLS / SSL)【英文标题】:Can't connect to https://localhost with ngrok (using TLS / SSL) 【发布时间】:2018-08-31 04:31:09 【问题描述】:

我已经看到了多个线程,但仍然无法启动和运行。

我尝试过 TLS 和 TCP 连接,但主要问题是浏览器无法理解这些 URL(例如 tls://2456xxxx.ngrok.io)。

一旦我建立了到https://localhost 的 TLS 或 TCP 连接,我如何才能真正通过浏览器进行连接?

(我需要测试 Stripe 的 PaymentRequest 功能,该功能需要带有绿色检查的 localhost 连接。)

关于这个问题的主题似乎没有回答这个问题: https://github.com/inconshreveable/ngrok/issues/194 https://github.com/inconshreveable/ngrok/issues/123

【问题讨论】:

【参考方案1】:

我通过关闭本地服务器上的 https 来实现此功能。如果您在 8080 上运行普通的 http 本地服务器,然后运行 ​​./ngrok http 8080,您将获得一个签名的 https ngrok URL,该 URL 将通过隧道连接到您的 http 服务器。

【讨论】:

不幸的是,我需要这个的全部原因是使用 ApplePay 进行 Stripe 本地开发需要 https。不过谢谢! @LukeWilliams Stripe 使用 Apple Pay 进行本地开发正是我想要做的,并且我成功地使用了这种方法。您需要做的就是关闭本地服务器上的 https,然后导航到 ngrok 隧道 URL 的 https 版本。您的浏览器和 ngrok URL 之间的连接是 https,因此 Apple Pay 等将起作用。 Ngrok 处理本地服务器和 Ngrok 隧道端点之间的安全连接。试试看! 哦哦哦哦哦哦哦哦哦哦!那会节省一些时间。会试试的。 @jweob"Ngrok 处理本地服务器和 Ngrok 隧道端点之间的安全连接。" -- 如果你的本地服务器运行 HTTP,ngrok 和你的本地服务器之间不会有 SSL。只是为了澄清。如果您在本地主机上使用自签名证书(您可能会这样做),那么此连接将被加密但仍然不安全,因为证书无效。 不再需要禁用 HTTPS。 Ngrok 从几个月前就开始支持 HTTPS,见this comment

以上是关于无法使用 ngrok 连接到 https://localhost(使用 TLS / SSL)的主要内容,如果未能解决你的问题,请参考以下文章

连接到 *** 时如何使用 ngrok 进行隧道传输?

使用 Ngrok 从 AWS Lambda 连接到本地 PostgreSQL

如何通过 ssh 连接到 ngrok 自托管服务器

如何使用 ngrok 连接到 Visual FoxPro 数据库

使用 ngrok 创建隧道以连接到 MongoDB 本地数据库

如何使用 Ngrok 将简单的 Java HTTP 客户端应用程序连接到 Web 资源?