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

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

内容简介:如果是对所有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域名问题》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

走出软件作坊

走出软件作坊

阿朱 / 电子工业出版社 / 2009-1 / 39.80

《走出软件作坊》这本书提供了解决国内小型IT企业发展的过程中会遇到的项目管理问题的若干方法。主要以作者自身多年工作的宝贵经验,来谈软件公司的项目管理和团队建设,包括对中小软件公司软件开发组织结构、团队文化、软件过程管理、团队激励、绩效考核、职业发展规划、未来业界发展趋势、个人素质提升等,具有实际指导意义。主要读者对象是IT企业的研发主管、项目经理和软件开人中同,以及即将到IT企业工作的高校毕业生。一起来看看 《走出软件作坊》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具