阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

栏目: 服务器 · 发布时间: 4年前

内容简介:如果是对所有ip开放端口的话,授权对象可以设置为0.0.0.0/0这里是一级基础域名例如mydomain.com,这个域名是顶级域名很多应用都需要使用,像jenkins.mydomain.com/nginx.mydomain.com/wechat.mydomain.com等等在域名解析中配置域名的解析规则(例如二级域名,ngrok-dev)

环境准备

阿里云ecs服务器(例如47.101.41.231)

阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

image.png

. 配置公网入口安全组

阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

image.png

.配置安全组规则

如果是对所有ip开放端口的话,授权对象可以设置为0.0.0.0/0

阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

image.png

.准备域名

这里是一级基础域名例如mydomain.com,这个域名是顶级域名很多应用都需要使用,像jenkins.mydomain.com/nginx.mydomain.com/wechat.mydomain.com等等

阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

image.png

在域名解析中配置域名的解析规则(例如二级域名,ngrok-dev)

这里特别注意的是二级域名,已经二级域名下的所有子域名的解析规则一定都要配置到ngrok的服务器
  1. ngrok-dev.mydomain.com 解析到47.101.41.231
    ngrok-dev二级域名下的子域名也需要解析到ngrok的服务器
  2. *.ngrok-dev.mydomain.com 解析到47.101.41.231
    如果没有添加二级域名下的子域名解析到ngrok服务器就会出现很尴尬的问题
    2.1 例如本地的客户端分配的三级域名是wechat
    阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

    image.png

    这个时候,访问应用的地址应该是 http://wechat.ngrok-dev.mydomain.com/testConnected ,
    noResponse,没有返回,
    然后ping 这个域名发现ping 不通
    阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

    image.png

    阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

    image.png

    2.2 但是如果不使用三级域名,直接使用二级域名访问的话( http://ngrok-dev.mydomain.com/testConnected
    则返回tunnel not found
阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

image.png

如果没有配置二级以下域名的解析规则的话就会出现很尴尬的问题

阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

image.png

  1. https的证书
  2. 阿里云会提供免费的ssl证书,但是不需要去下载使用这个证书,只需要使用openssl的证书就好了

    阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

    image.png

  1. 配置ecs 机器的防火墙

  2. 查看防火墙的开启状态

    阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

    image.png

  3. 查看可以访问的端口

    阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

    image.png

  4. 添加ngrok 需要的三个端口http 8081 https 8082 tunnel 8083

    firewall-cmd --zone=public(作用域) --add-port=8081/tcp(端口和访问类型) --permanent(永久生效)

    firewall-cmd --zone=public(作用域) --add-port=8082/tcp(端口和访问类型) --permanent(永久生效)

    firewall-cmd --zone=public(作用域) --add-port=8083/tcp(端口和访问类型) --permanent(永久生效)

    firewall-cmd --reload # 重新载入,更新防火墙规则

  5. 准备ngrok 的打包需要的环境

    yum -y install openssl-devel wget git

    这边安装了git openssl wget 命令

    ngrok 需要的 go 语言环境,使用wget在官网下载

    阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题

    image.png

    wget https://storage.googleapis.com/golang/go1.12.5.linux-amd64.tar.gz
    tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz
    vim /etc/profile
    //添加以下内容:
    export PATH=$PATH:/usr/local/go/bin
    source /etc/profile
    //检测是否安装成功go
    go version

8.下载ngrok源码

mkdir /ngrok
cd /ngrok
git clone https://github.com/inconshreveable/ngrok.git

9.生成openssl证书

export NGROK_DOMAIN="ngrok-dev.mydomain.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

覆盖原本证书
yes|cp rootCA.pem ../assets/client/tls/ngrokroot.crt
yes|cp device.crt ../assets/server/tls/snakeoil.crt
yes|cp device.key ../assets/server/tls/snakeoil.key

10.编译

GOOS=linux GOARCH=amd64 make release-server

GOOS=windows GOARCH=amd64 make release-client

  1. 启动

    setsid ./bin/ngrokd -tlsKey="assets/server/tls/snakeoil.key" -tlsCrt="assets/server/tls/snakeoil.crt" -domain="ngrok-dev.mydomain.com" -httpAddr=":8081" -httpsAddr=":8082" -tunnelAddr=":8083"

  1. 下载客户端到本地

    客户端ngrok.config的配置

    注意:证书的域名,ngrok服务器端启动脚本中的域名,客户端server_addr中配置的域名要保持一致,要不然会报证书不匹配

server_addr: "ngrok-dev.qijian-tech.com:8083"
trust_host_root_certs: false

tunnels:
  http:
    remote_port: "8081"
    subdomain: "wechat"
    proto:
      http: "8088"
      
  https:
    remote_port: "8081"
    subdomain: "wechat"
    proto:
      https: "8088"
  1. 客户端的启动脚本
./ngrok.exe -config=C:\Users\70736\Desktop\ngrok\ngrok.cfg -log=C:\Users\70736\Desktop\ngrok\ngrok.log start http https

注意:最好加上-log可以看到一些错误信息,然后有目的性的排查,

不要使用 ./ngrok.exe -subdomain dev -config=C:\Users\70736\Desktop\ngrok\ngrok.cfg -log=C:\Users\70736\Desktop\ngrok\ngrok.log 8088这个脚本启动,不要理解,容易让人误导


以上所述就是小编给大家介绍的《阿里云ecs搭建ngrok内网穿透服务器,解决微信开发联调https域名问题》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ACM国际大学生程序设计竞赛题解

ACM国际大学生程序设计竞赛题解

赵端阳//袁鹤 / 电子工业 / 2010-6 / 38.00元

《ACM国际大学生程序设计竞赛题解(1)》可以作为高等院校有关专业的本科和大专学生参加国际大学生程序设计竞赛的辅导教材,或者作为高等院校数据结构、C/C++程序设计或算法设计与分析等相关课程的教学参考书。随着各大专院校参加ACM/ICPC热情的高涨,迫切需要有关介绍ACM国际大学生程序设计竞赛题解的书籍。《ACM国际大学生程序设计竞赛题解(1)》根据浙江大学在线题库的前80题,进行了解答(个别特别......一起来看看 《ACM国际大学生程序设计竞赛题解》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具