记下调试微信登录时遇到的一个问题
有个 h5 项目带了微信登录功能,功能是基于微信网页授权实现的,但是最近使用功能发现报了一个错:
# 现象
在使用golang请求微信服务时,出现错误
x509: certificate signed by unknown authority
错误是后端请求微信接口获取 openId/unionid 时出现的
go实现的Client端默认要对服务端传过来的数字证书进行校验
- 注:后端服务是跑在 docker 容器里的
原因是容器里没有ca证书,所以校验出错了。
# 解决办法
可以选择两种办法
- ① 修改 go 的 client 端忽略对服务端的证书校验
关键设置:tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, }
- ② 添加证书到docker镜像内即可
参考命令:ADD your_ca_root.crt /usr/local/share/ca-certificates/foo.crt RUN update-ca-certificates