管过阿里云 CDN 的人大概都经历过这种事:证书快到期了,去 SSL 证书控制台下载新的,再跑到 CDN 控制台,找到域名,换上去。如果 OSS 也绑了自定义域名,再去 OSS 换一遍。还有 ALB,又是一遍。
我手上有个项目,通配符证书挂了七八个子域名,分布在 CDN、OSS 和 ALB 上。每次证书到期,整套流程走下来半小时起步。最怕的不是麻烦,是换漏------有一次某个 OSS 的自定义域名忘了换,等线上报错才发现,用户那边已经看到浏览器的证书警告了。
后来换了个思路,把证书签发和部署集中到一个地方管。下面记一下具体怎么搞的。
原来的流程长什么样
先看下之前的操作路径,估计不少人也差不多:
plaintext
收到证书到期邮件(有时候漏收)
→ 去 CA 重新申请 / 续签
→ 等签发,下载 .pem 和 .key
→ 登阿里云 SSL 证书服务,上传
→ 去 CDN 控制台,逐个域名替换证书
→ 去 OSS 控制台,自定义域名那里也换
→ 如果有 ALB / CLB,继续换
域名少的时候还能忍,一多就容易出事。特别是通配符证书有效期 90 天的,这套操作一年要走四轮。
现在的做法
核心思路:证书的签发、部署目标都配在一个管理平台上。续签的时候点一下,新证书自动推到之前配好的阿里云服务上。
签发通配符证书
平台提供免费通配符证书,有效期 90 天,一张 *.example.com 覆盖所有子域名。签发前要过一次 DNS 验证,但不用自己去 DNS 控制台加 TXT 记录------把 DNS 服务商的 API 密钥配好之后,验证记录是平台自己添的。DV 类的一般 5 到 10 分钟就签下来。
部署到阿里云
证书拿到之后,配上阿里云的 AccessKey,就能一键部署到下面这些服务:
| 服务 | 说明 |
|---|---|
| CDN | 内容分发 |
| DCDN | 全站加速 |
| OSS | 对象存储(绑了自定义域名的) |
| ALB | 应用型负载均衡 |
| CLB | 传统负载均衡 |
这里说的"一键部署"是手动触发的------你得自己去点那个按钮。但好处是一次操作覆盖所有目标,不用挨个控制台跑了。
续签后自动同步
90 天快到的时候,平台会通过微信、邮件、钉钉、飞书这些渠道发提醒。收到之后回去手动点续签。DNS 验证那条 TXT 记录平台还是自动加的,所以续签很快。
关键在这一步:续签完成后,新证书会自动同步到你之前配好的那些部署目标。CDN、OSS、ALB 上的证书就自动换好了,不用再去阿里云控制台操作。
整理一下哪些是手动的、哪些是自动的:
| 环节 | 手动 / 自动 |
|---|---|
| 首次签发 | 手动发起,DNS 验证自动 |
| 首次部署到阿里云 | 手动触发 |
| 到期提醒 | 自动 |
| 续签 | 手动触发 |
| 续签后同步到阿里云 | 自动 |
| Nginx / 自建服务器 | 手动,平台管不到 |
Nginx 还是得自己来
这套方案能覆盖的是阿里云托管的那五类服务。如果你在 ECS 上自己装了 Nginx,证书还是得手动替换------平台不支持 SSH 到你服务器上换文件,也没有部署后自动执行 nginx -s reload 这类能力。
腾讯云 CDN、宝塔面板也不在支持范围内。
我自己的做法是:阿里云那边的 CDN 和 OSS 走平台同步,ECS 上的 Nginx 手动更新。证书不用再单独去申请,直接从平台下载就行。工作量比之前少了大半,至少阿里云那部分不用操心了。
关于费用
免费通配符证书 90 天有效期,我自己一直在用,够了。需要更长有效期的也有付费选项,DV 单域名 39 块一年,DV 通配符 349 块一年,OV 单域名 590 块一年起,比直接在云厂商那里买便宜一些。
工具是 ssl.spug.cc,有类似需求可以看看。