Ngrok 主机名 SSL 证书
Posted
技术标签:
【中文标题】Ngrok 主机名 SSL 证书【英文标题】:Ngrok hostname SSL Certificate 【发布时间】:2020-10-08 12:07:12 【问题描述】:我正在运行一个 Flask API 应用程序,并且我有一个 SSL 证书。 当我在本地主机上运行烧瓶服务器时,证书是从 Flask 成功应用的。
但是当我使用 Ngrok 在自定义域上部署 localhost 时,证书更改为 *.ngrok.com,如何将其更改为我的证书?。
编辑#1: 我已经有了新主机名的证书,并且已经在 Flask 上应用了它,但是 ngrok 正在更改它。
【问题讨论】:
你不能。 ngrok.com 出示其证书。它必须是 *.ngrok.com 的有效证书,其他任何东西都没有意义。 您不能更改证书,这会使签名无效。您必须为新主机名获取新证书。 我已经有了新主机名的证书,并且已经在 Flask 上应用了它,但是 ngrok 正在更改它。 【参考方案1】:根据 ngrok 文档的描述,所有 TLS 连接都由 ngrok 终止。因此,如果您想终止自己的 TLS 连接,则必须设置自定义域 as explained here,以便该域与证书匹配。您可以查看文档中有关 TLS 隧道部分的更多详细信息。
【讨论】:
【参考方案2】:您通过 URL *.ngrok.com 公开您的服务。浏览器或其他客户端将向 *.ngrok.com 发出请求。那里提供的证书必须对 *.ngrok.com 有效。如果 *.ngrok.com 提供了 example.com 的证书,任何有效的 HTTPS 客户端都会因为名称不匹配而拒绝它,这根据定义使其成为无效证书并且是潜在安全问题的标志,这正是 HTTPS 的含义旨在缓解。
如果您想向客户出示您的 example.com 证书,您需要在 example.com 上实际托管您的网站
【讨论】:
以上是关于Ngrok 主机名 SSL 证书的主要内容,如果未能解决你的问题,请参考以下文章
Rails 3:OpenSSL::SSL::SSLError:主机名与服务器证书不匹配
OpenSSL::SSL::SSLError(主机名“smtp.mandrillapp.com”与服务器证书不匹配)