eggjs 框架代理调试 SELF_SIGNED_CERT_IN_CHAIN 报错解决方案
eggjs 中的 this.ctx.curl 可以发起一个请求,配置 proxy 可以很方面的通过接口进行问题定位。代理方式如下:
1、开启 egg-development-proxyagent ,配置 http_proxy 、 https_proxy 环境变量,将代理地址配置为本地 8888
export https_proxy=http://127.0.0.1:8888;export http_proxy=http://127.0.0.1:8888
2、使用 charles 代理抓包
如果是 https 的请求,需要通过 help -> SSL Proxying -> Install Charles Root Certificate 安装证书到 Keychain,并配置为 Always Trust。
charles 中右键对应的 https 请求,Enable SSL Proxying
3、Node 环境变量配置
由于本地 charles 为自签名证书,egg 会报一个 SELF_SIGNED_CERT_IN_CHAIN 的错误,开发环境配置以下环境变量运行即可
export NODE_TLS_REJECT_UNAUTHORIZED=0 && npm run dev