Github倉庫地址:https://github.com/silentwu/ngrok/blob/master/README.md
- 生成自簽名證書
使用ngrok.com官方服務(wù)時,我們使用的是官方的SSL證書硅急。自建ngrokd服務(wù)零如,我們需要生成自己的證書橱健,并提供攜帶該證書的ngrok客戶端氢拥。
證書生成過程需要一個NGROK_BASE_DOMAIN寡夹。 以ngrok官方隨機生成的地址693c358d.ngrok.com為例秕噪,其NGROK_BASE_DOMAIN就是"ngrok.com"牍蜂,如果你要提供服務(wù)的地址為"example.tunnel.tonybai.com"漾根,那NGROK_BASE_DOMAIN就應(yīng)該 是"tunnel.tonybai.com"。
我們這里以NGROK_BASE_DOMAIN="tunnel.tonybai.com"為例鲫竞,生成證書的命令如下:
export NGROK_DOMAIN="tunnel.tonybai.com"
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
將新生成的證書辐怕,覆蓋cert目錄中的ca.cer、server.crt及server.key文件
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
將新生成的證書从绘,覆蓋cert目錄中的ca.cer寄疏、server.crt及server.key文件
cp rootCA.pem ca.crt
cp device.crt server.crt
cp device.key server.key
- 生成客戶端,生成完后下載到本地電腦
docker run --rm -it -e DOMAIN="tunnel.tonybai.com" -e HTTP_ADDR=3389 -e HTTPS_ADDR=8888 -e TUNNEL_ADDR=8083 -v /data/ngrokcert:/cert -v /data/ngrok:/wln monkeyk/ngrok /bin/sh /start.sh
- 啟動服務(wù)器ngrok
docker run -d -p 8083:8083 -p 3389:3389 -p 8888:8888 -e DOMAIN="tunnel.tonybai.com" -e HTTP_ADDR=3389 -e HTTPS_ADDR=8888 -e TUNNEL_ADDR=8083 -v /data/ngrokcert:/cert -v /data/ngrok:/wln monkeyk/ngrok
- 啟動客戶端
ngrok.cfg文件
server_addr: "tunnel.tonybai.com:8083"
trust_host_root_certs: false
tunnels:
http:
proto:
http: "3389"
https:
proto:
https: "8888"
啟動:
ngrok -config ngrok.cfg start http https