微信对ssl要求很严格,国外的那些免费ssl是无法在小程序里正常使用的,只有官方认可的阿里云和腾讯的ca能够正常使用。
公司用的是阿里的服务器和域名,所有就直接使用阿里的免费ca。
申请阶段遇到一些麻烦。
- 因为不知道小程序的这种ca设定,一开始用的是国外的一款免费ssl
- 发现必须使用官方认可的ca,于是同样的域名改用阿里的ca,结果老是审核不通过,不管是ftp验证还是dns验证都没用,换域名也没用
- 经过一通折腾,最后用新的二级域名新建了一个site,结果审核通过
审核通过之后需要下载证书,将证书复制到根目录下的cert目录里,然后配置nginx
/www/wdlinux/nginx/conf/vhost/ad.hbwjkj.com.cn.conf
listen 443;
ssl on;
ssl_certificate /cert/214363474980872.pem;
ssl_certificate_key /cert/214363474980872.key;
ssl_session_timeout 5m;
重启nginx
service nginxd restart
到这里ca就算配置成功了,但是还有问题,就是原先的site现在只能通过https访问,里面所有元素也需要调用https链接
header("Content-Security-Policy: upgrade-insecure-requests");
或者
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
这段代码会将所有链接自动替换为https
原先site用http访问的时候,页面的http元素会被判定为广告而被插件拦截