通配符证书到期,阿里云上几个服务的证书怎么一次换完

管过阿里云 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,有类似需求可以看看。

相关推荐
陈陈CHENCHEN2 小时前
【Linux】服务器根目录磁盘扩容操作记录
linux·运维·服务器
白远山3 小时前
家政服务家政社区派单实战:调度系统架构设计与实现指南
java·开发语言·小程序·架构·需求分析
见闻小天地4 小时前
从晶片工艺到可靠性验证:晶威特TF-3215型RTC晶振全面解析
运维·业界资讯
DevRay4 小时前
Java 21虚拟线程深度实战:告别线程池焦虑,百万并发吞吐量直接翻倍(原理+代码+避坑)
java·开发语言
free-elcmacom4 小时前
C++学习<1>程序分区
开发语言·c++
醉颜凉4 小时前
Java 必看:如何彻底避免 HashMap 多线程死循环问题?
java·开发语言
默 语4 小时前
Java新手入门:从零开始安装JDK并配置环境变量
java·开发语言·python·mysql·group by·1024程序员节·数据去重
Brilliantwxx5 小时前
【STM32】 I2C_EEPROM_test 工程(实战篇)
开发语言·stm32·单片机·嵌入式硬件·ecmascript
清水白石0085 小时前
Python 异步编程深度解析:Cancellation 到底是异常还是控制信号?从 asyncio 取消机制到企业级事务设计最佳实践
开发语言·python
名字还没想好☜5 小时前
Docker 网络实战:bridge/host/none/自定义网络、容器互通与端口映射踩坑
运维·docker·kubernetes