问题描述

微信小程序使用自己的服务器后台时,需要接入https的域名。在确保已经在微信小程序管理后台添加了域名后,本地开发工具可以正常访问https的后端服务,而真机测试体验版都没办法接入后台。ERR_CERT_AUTHORITY_INVALID意味着证书认证失败。
此处我是使用nginx完成https映射,下面例子中也是已nginx为例。

解决问题

  1. 打开https://myssl.com/ 检查Https是否有未知错误
  2. 如果提示不符合PFS规范,则在nginx配置文件中加入以下配置文件
    server {
    	.................
    	ssl_certificate /xx/xx/xx;
    	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1.1 TLSv1.2;
    }
    
  3. 若提示缺少证书链,意味着你ssl证书缺少中间证书,那极有可能就是因为这个导致了你的https在小程序中不可用。
    进入https://myssl.com/chain_download.html 输入你的域名后,此网站会自动下载你的证书,并生成中间证书。
    在这里插入图片描述
    你可以在你服务器中,放置ssl证书的位置,运行图中的命令,直接下载中间证书到服务器中。然后在nginx.conf中将原本指向的证书目录修改为中间证书的目录即可。如下所示
    ssl_certificate /ssl/full_chain_rsa.crt;
  4. 重启nginx
    进入sbin目录下,执行 ./nginx -t 检查配置文件中是否存在错误
    执行./nginx -s reload重启nginx
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐