在腾讯云后台申请的证书有效期已变为 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)
举报· 307 次点击
登录 注册 站外分享
30 条回复  
spug 小成 2024-9-14 10:33:53
在这里申请一个一年有效期的 49 块钱,而且到期前会有多重提醒方式自动提醒: https://ssl.spug.cc/
fox0001 小成 2024-9-13 12:48:57
cloudflare dns ,可以带免费证书,续签都免了
coagent 小成 2024-9-13 12:46:50
acme.sh ,结合 ReloadCmd ,可以自由扩展,最近在一个项目中的实践:
- 域名解析服务使用腾讯云的,即 DNSPod ,acme.sh dns api 支持。
- 直接申请通配符的证书,申请了 *.dev.domain.com, *.staging.domain.com, *.domain.com 等。
- ReloadCmd 调用 Bash Shell 脚本,脚本根据场景用 Ansible 等去刷新绑定使用了证书的地方,目前已应用到 Nginx, APISIX, HAProxy, GitLab, Harbor, K8s 等自部署的程序,用 Python 实现支持云厂商 CLB, ALB 也是可行的。
Dragonphy 小成 2024-9-13 11:59:20
开源的 SSL 证书管理工具,可以帮助你自动申请、部署 SSL 证书,并在证书即将过期时自动续期。
https://github.com/usual2970/certimate
lisxour 小成 2024-9-13 11:24:06
@bug123 #16 这种最怕就是等用户起来后割韭菜
ranaanna 小成 2024-9-13 10:58:45
@sshnuke #28 certbot renew --cert-name domain.com
Baloneo 小成 2024-9-13 10:19:14
https://mindsers.blog/en/post/https-using-nginx-certbot-docker/
yikuo 小成 2024-9-13 10:17:04
@flynaj 自从 Let's Encrypt 之前的根证书过期换了新的根证书后,很多旧设备就不兼容了,ZeroSSL 的兼容性要好很多。

https://letsencrypt.org/zh-cn/docs/certificate-compatibility/

https://help.zerossl.com/hc/en-us/articles/360058294074-ZeroSSL-Compatibility-List
mouyase 小成 2024-9-13 10:07:10
我用 OP 发的工具测了一下,是 A+
lcy630409 小成 2024-9-13 09:54:16
用的国内 tx 服务器
添加 fshexray
安装 acme.sh ,申请谷歌泛域名(我有两个域名,谷歌家  可以一个证书放两个域名)证书,到期自动续费 自动覆盖站点证书  重启 bt  重启 nginx
将域名进行加密 输出 json ,,其他自己家里 或者需要证书的地方  获取前面的 json  对比版本,自动更新
123下一页
返回顶部