我正在设置应用程序以通过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/