在ngrok dev环境中使用SSL Cert

时间:2014-05-25 05:45:44

标签: heroku google-api ssl-certificate ngrok

我正在设置我的应用程序,以通过Google的Calendar 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证书?

2 个答案:

答案 0 :(得分:6)

如果您使用自己的域名,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
  7. 您的本地开发机器的80端口应该可以通过https://dev.mydomain.com

    访问

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

    另一个有趣的诀窍是使用CloudFlare的通用SSL,在没有购买证书的情况下,指向您的开发机器的有效https://dev-machine.mydomain.com。除了您需要为ngrok客户端 - 服务器通信颁发自己的证书并使用CloudFlare的Flex SSL for dev-machine.yourdomain.com之外,步骤完全相同。

答案 1 :(得分:0)

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

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