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,

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

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

安装好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。

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

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

make release-server release-client

再执行命令生成windows客户端

GOOS=windows GOARCH=amd64 make release-client

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

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

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

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值