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

我的生产环境在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的证书。



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

最佳答案

如果您使用自己的域,则Ngrok的带有白色标签的域不支持HTTPS。仅仅是因为它提供了它自己的证书,所以您需要在其中提供域的证书。这就是为什么您会遇到证书不匹配的问题。

这是您可以在开发机上观看日历事件的方法:


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


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

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

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

关于heroku - 将SSL Cert用于ngrok开发环境,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23852427/

10-13 04:13