微信小程序服务端必须支持HTTPS,SSL证书还需要完整。否则,可能会出现微信小程序wx.request电脑端正常,但手机端失败的现象。
1、免费SSL证书
申请的JoySSL免费ssl证书。有效期90天,不知道到期后续签是否还免费?申请下证书,速度还是很快的。
2、SrpingBoot配置
把IIS证书直接设置到SrpingBoot配置文件中。
server:
port: 443
ssl:
key-store: classpath:abc.pfx
key-store-password: password
keyStoreType: PKCS12
用开发工具测试一切正常,但用手机端访问,提示总是失败。
域名已经添加信任和Https,wx.requset请求报错。
request:fail -2:net::ERR_FAILED
3、SSL服务器证书安装检查器
SSL证书安装检查器、在检查自己域名对应服务器后,在证书2有如下警示:
原因可能是,在IIS目录的证书可能缺少中间证书,导致有错误出现。
- 网上有补全证书的方法,没有具体尝试。
- 发现在Ngix目录下的证书是全的,改为把SSL配置到ngix方式。
3、windows版本Nginx添加Https配置
- 修改nginx.conf文件,把该段代码前面的#号去掉。
- 分别修改其中的ssl_certificate和ssl_certificate_key配置项为JoySSL所生成的abc.crt和abc.key这两个文件的目录。
- 并配置server_name为你的域名。
- 增加转发,转发到自己的普通spingboot项目即可(不需要ssl)。
修改后的该段配置如下:
server {
listen 443 ssl;
server_name www.xxxxx.com;
ssl_certificate C://nginx//cert//abc.crt; # 这个是证书的crt文件所在目录
ssl_certificate_key C://nginx//cert//abc.key; # 这个是证书key文件所在目录
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; # 这个是指定首页的文件名
}
location ^~ /xxx-api/ {
proxy_pass http://127.0.0.1:8060/xxx-api/;
}
}
4、确认OK
- 重启后,再进行SSL服务器证书检查,发现没有问题。
- 小程序手机端访问也正常起来。