在腾讯云后台申请的证书有效期已变为 90 天,为了减少手动续签的麻烦,可以通过自动续签来解决。目前使用的`TrustAsia`单域名免费证书,是通过腾讯云申请的。
### 已知的证书服务商
1. Let's Encrypt
2. ZeroSSL
3. TrustAsia
过去曾有过`Let's Encrypt`被国内网络污染的情况,考虑到`TrustAsia`与国内云服务器厂商有合作,因此很多国内厂商推荐使用`TrustAsia`。
由于平时会开发小程序,担心使用`Let's Encrypt`或`ZeroSSL`时会遇到不信任的情况或速度较慢的问题。
目前使用`freessl`申请的是`TrustAsia` DV 证书,通过 DNS 验证,服务器上部署了`acme.sh`脚本进行证书管理。acme.sh 的证书请求服务地址是`freessl`提供的,自动处理证书续签后,重新加载 Nginx ,个人使用 RSA 加密。发现`freessl`申请的是`TrustAsia RSA DV TLS CA G3`,而腾讯云申请的是`TrustAsia RSA DV TLS CA G2`,G2 和 G3 版本之间存在区别。
查询到`freessl`的背景,可能是由个人开发者或小公司运营,因此对其安全性有所担忧,并不了解其如何与`TrustAsia`合作提供免费的单域名和泛域名证书。
打算迁移到`ZeroSSL`,不确定其使用效果。如果有使用过的经验分享,特别是小程序内用户量较大的情况下,可以通过微信的`WE 分析`查看网络请求失败的统计数据。
### 微信小程序 HTTPS 证书要求
微信小程序对于 HTTPS 证书的要求如下:
1. **HTTPS 证书必须有效**:证书不能过期。
2. **证书必须被系统信任**:证书的根证书必须是系统内置信任的。
3. **证书与域名匹配**:部署 SSL 证书的网站域名必须与证书中的域名一致。
4. **证书在有效期内**:证书不能过期。
5. **证书信任链完整**:服务器需要配置完整的证书信任链。
6. **iOS 不支持自签名证书**。
7. **iOS 证书必须满足 Apple App Transport Security (ATS)的要求**。
8. **TLS 版本要求**:必须支持 TLS 1.2 及以上版本。部分旧版 Android 设备可能不支持 TLS 1.2 ,因此确保服务器支持 TLS 1.2 及以下版本。
9. **证书兼容性**:部分 CA 可能不被操作系统信任,开发者应选择被微信小程序和各操作系统支持的证书。
10. **WoSign 和 StartCom 限制**:Chrome 56/57 版本内核已对 WoSign 、StartCom 的证书限制。
可以通过以下命令检查证书的有效性:
```bash
openssl s_client -connect example.com:443
```
也可以使用其他在线工具验证证书。如 [https://myssl.com/ssl.html]( https://myssl.com/ssl.html) |
|