ngrok配置ssl证书实现https内网穿透

最近在服务器上搭建ngrok服务时,使用了自签的ssl证书,发现无法通过https访问,提示证书无效。但在阿里云申请的免费证书又只能签一个域名,没法同时签根域名和子域名,这样会导致客户端连不上。因此, Let's Encrypt出场了。

(本文适合对已经搭建过ngrok服务的读者,木有搭建过的请先按照其他博文搭建后再来观看~)

什么是 Let's Encrypt

Let's Encrypt 是一个由非营利性组织 互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA)。

简单的说,借助 Let's Encrypt 颁发的证书可以为我们的网站免费启用 HTTPS(SSL/TLS) 。

 

证书申请

我们需要安装 Certbot 客户端来签发证书。先到https://certbot.eff.org网站选择对应的服务器、软件类型去安装。比如我的是centos,ngrok配置ssl证书实现https内网穿透_第1张图片

然后网站会给出相应的命令,复制命令执行就可以了。

ngrok配置ssl证书实现https内网穿透_第2张图片

因为本人比较懒,所以以申请通配符证书为例,申请通配符证书的话,你的所有子域名都可以用这个证书,不用重复申请。

安装好certbot之后,执行下面的命令就可以申请了。申请的过程中会要求你更新dns的解析记录,按提示来就行,这个不难。

./certbot-auto certonly -d *.xxx.com -d xxx.com --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory

申请成功后,找到这两个文件

然后复制到ngrok里保存服务器证书的文件夹下并重命名,privkey重命名为snakeoil.key,fullchain的重命名为snakeoil.crt。

ngrok配置ssl证书实现https内网穿透_第3张图片

接着再打开保存客户端证书的文件夹,报snakeoil.crt复制进去并重命名为ngrokroot.crt

ngrok配置ssl证书实现https内网穿透_第4张图片

然后执行ngrok命令生成服务端和客户端

make release-server release-client

再执行命令生成windows客户端

GOOS=windows GOARCH=amd64 make release-client

为了方便,把上面的两个证书文件复制到ngrok文件夹下,按下图重命名,然后启动

ngrok配置ssl证书实现https内网穿透_第5张图片

./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="xxx.com" -httpAddr=":80" -httpsAddr=":443"

我们就可以愉快的通过https内网穿透了~

你可能感兴趣的:(ngrok配置ssl证书实现https内网穿透)