【问题标题】:Using SSL Cert for ngrok dev environment在 ngrok 开发环境中使用 SSL 证书
【发布时间】:2014-07-14 04:23:06
【问题描述】:

我正在设置我的应用程序以通过 Google 的日历 API 观看日历事件。为此,我必须在具有有效 SSL 证书(非自签名)的服务器上设置“推送”端点。

我的生产环境在 Heroku 上运行,因此使用 Expidited SSL 设置 SSL 证书很容易。我在 GoDaddy 中有两个 CNames 设置,一个用于我的生产应用程序,一个用于我的开发环境,通过 ngrok 隧道。我正在使用白标域隧道 (dev.mydomain.com) 的付费 ngrok 功能。

Host           Points To

www            saga-1234.herokussl.com
dev            ngrok.com

问题是我的 ssl 证书在你访问生产应用程序 (www.mydomain.com) 时被识别,但是当你访问开发应用程序 (dev.mydomain.com) 时它使用 ngrok 的证书。

如何设置我的 ngrok 隧道以使用我的 ssl 证书?

【问题讨论】:

  • 我已经研究过创建通配符 SSL 证书,但不确定这是否会涵盖我的 dev 子域或只是 heroku 上的子域
  • 只是好奇,CNAME 中的条目不应该是 dev mydev_mydomain.ngrok.com 之类的吗?
  • 自定义域上的隧道(白标 URL)是 ngrok 的一项付费功能。

标签: heroku google-api ssl-certificate ngrok


【解决方案1】:

如果您使用自己的域,Ngrok 的白标域不支持 HTTPS。仅仅因为它提供自己的证书,您需要在其中提供您的域的证书。这就是您遇到证书不匹配问题的原因。

您可以通过以下方式在您的开发机器上观看日历事件:

  1. 将 ngrok.mydomain.com 指向另一台服务器,假设是一个新的 EC2 微实例
  2. 将通配符 CNAME 指向 ngrok.mydomain.com
  3. 编译 ngrok 服务器和客户端以使用您的证书(而不是 ngrok.com)
  4. 在 EC2 实例上运行 ngroku-server
  5. 在您的开发机器上配置客户端以使用 ngrok.mydomain.com 而不是 ngroku.com
  6. 运行 ngrok -subdomain=dev 80

您的本地开发机器的 80 端口应该可以通过 https://dev.mydomain.com 访问

这真的很酷,在调试需要有效 HTTPS 和经过验证的根域名的 Google 的 webhook 时非常有用。

另一个有趣的技巧是使用 CloudFlare 的通用 SSL 让有效的https://dev-machine.mydomain.com 指向您的开发机器,而无需购买证书。步骤完全相同,只是您需要为 ngrok 客户端-服务器通信颁发自己的证书,并为 dev-machine.yourdomain.com 使用 CloudFlare 的 Flex SSL。

【讨论】:

  • 哇!这是一个很好的线索,谢谢!我需要试一试,然后再签到。
【解决方案2】:

ngrok 具有隧道和终止 SSL 的新功能。因此,您可以使用自己的域和 HTTPS。无需在路由器或 PC 中打开端口。他们称之为 TLS 隧道。以下是 GitHub 存储库的链接,描述了如何执行此操作。

How to use your own domain to access your home PC over the internet. Use HTTPS without raising SSL errors.

【讨论】:

    猜你喜欢
    • 2016-03-16
    • 1970-01-01
    • 2020-10-08
    • 2014-04-02
    • 1970-01-01
    • 2023-04-02
    • 2014-08-06
    • 2019-02-18
    • 1970-01-01
    相关资源
    最近更新 更多