使用SSL证书在ngrok开发环境中

16

我正在努力设置我的应用程序通过Google的日历API来监视日历事件。在这样做时,我必须在我的服务器上设置一个“推送”端点,并拥有有效的SSL证书(不是自签名的)。

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

Host           Points To

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

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

enter image description here

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


1
我研究了创建通配符 SSL 证书,但不确定是否可以覆盖我的 dev 子域名或仅限于 Heroku 上的子域名。 - Jeff Miller
只是好奇,CNAME 中的条目不应该是像 dev mydev_mydomain.ngrok.com 这样的吗? - Anshul Goyal
自定义域名隧道(白标网址)是ngrok的付费功能。 - Arihant Godha
2个回答

12

如果您使用自己的域名,则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 Webhooks时非常有用。

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


哇!这是一个很好的线索,谢谢!我需要尝试一下并回来检查。 - Jeff Miller

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接