此方案为同事探究得出,现本人即将离职,特此记录下该方案,以备后续查找。html
sudo vi /etc/hosts # 添加目标域名映射 127.0.0.1 [target-host-name]
建议经过Homebrew安装nginx
brew install nginx nginx -v nginx -h
成功安装截图git
# 成功安装后摘录以下 Docroot is: /usr/local/var/www The default port has been set in: /usr/local/etc/nginx/nginx.conf to 8080 so that nginx can run without sudo nginx will load all files in /usr/local/etc/nginx/servers/.
能够修改下默认端口,而后跑nginx
启动, 能够在浏览器看到默认的http server
,表示nginx安装好了,没什么问题。github
要开启https server
,须要有ssl证书,使用mkcert能够在本地安装证书。浏览器
mkcert: https://github.com/FiloSottil...安全
生成证书的方式,请通读其README,主要了解安装、生成证书命令、安装CA命令bash
建议将证书放到nginx安装目录下usr/local/etc/nginx/ssl,命名自行根据实际命名便可。微信
mkcert -key-file [key.pem] -cert-file [cert.pem] [target-host-name] [target-host-name]
... http { ... # HTTPS server server { listen 443 ssl; server_name [target-host-name]; proxy_buffering off; ssl_certificate /usr/local/etc/nginx/ssl/[cert.pem]; ssl_certificate_key /usr/local/etc/nginx/ssl/[key.pem]; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; proxy_pass [本地服务,如 http://localhost:8080]; } } }
设置完毕重启nginx, 访问目标域名,若能访问到你开启的本地服务,则表示设置好了。session
请经过nginx -h
查看post
# 启动nginx nginx # 重启nginx nginx -s reload # 退出nginx nginx -s quit
安装Charles,分别在电脑和手机安装Charles证书,参考:此处-掘金文章
手机添加Charles链接:Help - SSL proxying - Install Charles Root Certificate On a Mobile Device or Remote Browser, 而后按提示:
chls.pro/ssl
下载证书,并安装证书(若安装失败,需自行找适合你所使用手机的安装方式,参考:https://www.jianshu.com/p/59c... R15是进入WLAN, 拉到底部有个"高级设置" - 安全证书管理 从存储设备安装,选择下载的证书并安装)完毕后,经过手机访问目标域名,查看Charles的抓包,看对应的请求Remote Address是否为[target-host-name]/127.0.0.1:443
, Client Address 则为手机的地址。
至此,就成功使得在手机上访问目标域名,实际上访问的是电脑开启的本地服务,达到了能够调试微信js-sdk的目的。