欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ngrok使用签名证书访问本地https

程序员文章站 2022-05-01 10:05:31
...

前言:

研究了一下午,终于搞定。
阿里云也开始小气了,一个域名只能申请20的免费SSL证书.
建议在https://freessl.cn/申请, 免注册,免费申请。
ngrok使用签名证书访问本地https

原以为一定需要 abc.com 这样的根域名证书,如果做固定2级域名解析,根本不需要。
直接上干货。

1.申请域名证书:

建议使用www.abc.com 二级域名进行申请,先拿到证书

ngrok使用签名证书访问本地https


2.编译ngrok,找的一台centos系统,安装git后

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential golang mercurial git --yes
git clone https://github.com/inconshreveable/ngrok.git ngrok

3.直接编译server:

@Windows 服务端x64服务端与客户端:
GOOS=windows GOARCH=amd64 make release-server
GOOS=windows GOARCH=amd64 make release-client

@Linux 客户端x64服务端与客户端:
GOOS=linux GOARCH=amd64 make release-server
GOOS=linux GOARCH=amd64 make release-client

4.去bin文件夹中找到文件:

拿到生成一堆执行文件。我已经编译好了,文末有编译好的,需要的自己取
ngrok使用签名证书访问本地https


5.证书文件与ngrokd放到相同目录,通过命令启动sever端:

启动命令

ngrokd -tlsKey="0915142917_key.key" -tlsCrt="0915142917_chain.crt" -domain="abc.com" -httpsAddr=":443" -httpAddr=":80"
说明一下上面的参数
 -tlsKey="0915142917_key.key"  申请ssl后拿到的域名 key(秘钥)文件
 -tlsCrt="0915142917_chain.crt"  服务器域名证书文件,这个证书文件使用二级域名 
  www.abc.com 域名申请 ,也就是最终你需要用哪个域名访问你的本地。
 -domain="abc.com"  这个是好像是通知客户端,在哪个主域下,添加二级域名。记住填一级域名就行。
 -httpsAddr=":443"  https协议访问的端口
 -httpAddr=":80"    http协议访问的端口

6.创建文件 ngrok.cfg:

server_addr: "www.abc.com:4443"
trust_host_root_certs: true
注意server_addr=你申请证书的域名=最终你准备访问的域名 参数说明: server_addr 服务器地址 4443端口为server端的默认端口,需要打开对应防火墙。 trust_host_root_certs 可信证书务必填true ,只有自签名证书才使用false,这个折腾了我3个小时。由于我们使用可信证书,所以第3步可以跳过,自签名证书需要用openssl去自己创建证书后,替换对应文件。

6.创建客户端批处理文件:

ngrok.exe -subdomain www -config=ngrok.cfg 8080
参数说明:
-subdomain 使用固定二级域名头,这个需要和我们申请证书的二级域名头一致,
 我们使用的www.bb.com 就写 www,使用abc.bb.com就写abc
-config=ngrok.cfg 根据配置文件链接服务器。
8080 你本地电脑需要映射出去的端口。

ngrok使用签名证书访问本地https

ngrok使用签名证书访问本地https

编译好的windows版和linux版,点击下载

相关标签: 杂谈 ssl