在ngrok dev环境中使用SSL Cert

Jef*_*ler 10 google-api heroku 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
Run Code Online (Sandbox Code Playgroud)

问题是当您点击生产应用程序(www.mydomain.com)时我的ssl证书被识别,但是当您访问开发应用程序(dev.mydomain.com)时它会使用ngrok的证书.

在此输入图像描述

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

Vil*_*kas 7

如果您使用自己的域,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

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

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

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