2014-05-25 49 views
9

我正在设置我的应用程序以通过Google的Calendar API观看日历活动。为此,我必须在我的服务器上设置一个具有有效SSL证书(非自签名)的“推送”端点。使用SSL Cert for ngrok开发环境

我的生产环境在Heroku上运行,因此使用Expidited SSL设置SSL证书非常简单。我在GoDaddy中安装了两个CNames,一个用于我的生产应用程序,一个用于我的开发环境,通过ngrok进行隧道传输。我正在使用白色标记域隧道(dev.mydomain.com)的付费ngrok功能。

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 –

+0

只是好奇,不应该在'CNAME'入口是这样的'dev mydev_mydomain.ngrok.com'? –

+0

自定义域名(白标签网址)上的隧道是ngrok的付费功能。 –

回答

5

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

这里是你可以做些什么来观看您的开发机器上的日历事件:

  1. 点ngrok.mydomain.com到另一台服务器,比方说,一个新的EC2 微实例
  2. 点通配符CNAME到ngrok .mydomain.com来
  3. 编译ngrok服务器和客户端使用证书(而不是 ngrok.com)
  4. 运行在EC2实例ngroku服务器
  5. 在你的dev的机器配置客户端使用ngrok.mydomain.com代替ngroku.com
  6. 运行ngrok -subdomain =开发80

你的本地开发机的80端口应通过https://dev.mydomain.com

可以访问

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

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

+0

哇!这是一个伟大的领先,谢谢!我需要试一试并重新检查。 –