ngrok使用签名证书访问本地https
程序员文章站
2022-05-01 10:05:31
...
前言:
研究了一下午,终于搞定。
阿里云也开始小气了,一个域名只能申请20的免费SSL证书.
建议在https://freessl.cn/申请, 免注册,免费申请。
原以为一定需要 abc.com 这样的根域名证书,如果做固定2级域名解析,根本不需要。
直接上干货。
1.申请域名证书:
建议使用www.abc.com 二级域名进行申请,先拿到证书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文件夹中找到文件:
拿到生成一堆执行文件。我已经编译好了,文末有编译好的,需要的自己取
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 你本地电脑需要映射出去的端口。
上一篇: http升级到https配置