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 证书的主要内容,如果未能解决你的问题,请参考以下文章

微服务内部通信时的 SSL 证书主机名问题

Rails 3:OpenSSL::SSL::SSLError:主机名与服务器证书不匹配

OpenSSL::SSL::SSLError(主机名“smtp.mandrillapp.com”与服务器证书不匹配)

esxi变更主机名和更换CA 签名证书

javax.net.ssl.SSLPeerUnverifiedException:主机名未验证:

centos安装k8s集群前期准备,安装SSL证书