服务器更换SSL证书,微信小程序报600001
项目场景:
某政府单位项目的SSL证书一直使用免费华为SSL证书,一年到期,需要重新申请。因此,服务器需要更换SSL证书。
问题描述
在nginx组件中成功替换到最新证书并重启,测试使用浏览器访问系统一切正常,成功使用了最新证书进行TLS握手协议。但是,存在部分用户在使用小程序时会出现问题。此类用户使用小程序会报错误:errno: 600001, errMsg: “request:fail -102:net::ERR_CONNECTION_REFUSED“
原因分析:
第一时间想到了是否由于 SSL证书更换导致,便先去核对SSL证书和Nginx的配置。
-
SSL证书核对
通过使用 myssl网站进行SSL/TLS安全评估报告
,发现此网站评价为A,符合业务需求,并没有问题
网上查到网站,说需要服务器支持TLSv1 TLSv1.1 TLSv1.2
此三种协议就可以。又通过验证TLS协议的网站查看,发现满足以上条件。
根据以上判断SSL证书没有问题! -
Nginx配置核对
查看配置文件无误
!
#https 请求 服务器开放端口
listen 443 ssl;
server_name localhost xxxx.cn;
#加密配置文件
ssl_certificate /usr/local/nginx/cert/scs1646878988638_server.crt;
ssl_certificate_key /usr/local/nginx/cert/scs1646878988638_server.key;
ssl_session_timeout 60m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
参考网站:HTTPS安全与兼容性配置指南
最后,只能按照浏览器相关的经验,应该是微信小程序缓存旧证书
的原因,导致微信小程序还使用旧证书进行TLS握手。
解决方案:
解决方案应该有两个:
- 等待
应该微信会自动清理此小程序缓存 - 手动清除此微信小程序的缓存(不能保证立刻生效)
按照此教程微信小程序缓存清理