自动续签阿里云免费SSL证书

阿里云免费 SSL 证书(如由 DigiCert、Let's Encrypt 提供) 默认不会自动续签,你需要通过 脚本或 ACME 工具 实现自动续签 + 自动部署到 Web 服务(如 Nginx)。

以下是两种常见场景的自动续签方案:
✅场景一:使用阿里云 云产品(如CDN/负载均衡) 的免费证书自动续签
阿里云控制台中,绑定云产品的免费证书(非下载使用)会 自动续签,你无需处理。
⚠️ 但如果你是手动下载证书,部署到本地服务器(如Nginx/Tomcat),则 不会自动续签。

✅ 场景二:自托管 Nginx/Web 服务,需要自动续签阿里云的免费域名证书
阿里云提供的免费证书(如 DigiCert 提供的 DV 证书),不能通过脚本自动续签。推荐方式是用 Let’s Encrypt 的免费证书,结合 DNS 验证实现全自动续签。

🛠 推荐使用 acme.sh + 阿里云 DNS 自动续签证书
步骤一:安装 acme.sh 工具

curl https://get.acme.sh | sh
source ~/.bashrc

步骤二:配置阿里云 API 密钥(用作 DNS 验证)
进入阿里云控制台申请访问密钥(AccessKey ID & Secret):
建议使用 RAM 子账号并最小权限。

export Ali_Key="你的AccessKeyID"
export Ali_Secret="你的AccessKeySecret"

步骤三:配置EAB(External Account Binding)凭据
步骤 1️⃣:注册 ZeroSSL 账户(免费)
进入 https://zerossl.com 注册账号。

步骤 2️⃣:获取 EAB 凭据
登录后访问:
👉 https://app.zerossl.com/developer
在“External Account Binding (EAB)”部分点击【Create EAB Credentials】,会生成:

  • Key ID
  • HMAC Key
    image.png
image.png

步骤 3️⃣:配置 acme.sh 使用 ZeroSSL 和 EAB

export EAB_KID="你刚刚获取的 Key ID"
export EAB_HMAC_KEY="你刚刚获取的 HMAC Key"

acme.sh --register-account --server zerossl  --eab-kid "$EAB_KID" --eab-hmac-key "$EAB_HMAC_KEY"

步骤四:签发证书(使用阿里云 DNS 验证)

acme.sh --issue --dns dns_ali -d yourdomain.com
image.png

使用 dns_ali 插件自动创建 DNS 解析记录用于验证。
或者切换回 Let’s Encrypt(不需要 EAB):

acme.sh --set-default-ca --server letsencrypt

Nginx 配置:
ssl_certificate yourdomain.com.cer
ssl_certificate_key yourdomain.com.key

步骤五:安装证书(部署到 Nginx 等)

acme.sh --install-cert -d yourdomain.com \
--key-file       /etc/nginx/ssl/yourdomain.key \
--fullchain-file /etc/nginx/ssl/yourdomain.crt \
--reloadcmd     "systemctl reload nginx"

步骤六:设置自动续签
acme.sh 默认会自动续签每个证书,每天运行一次 cron job(不需手动设置)。

🧪 检查是否续签成功

acme.sh --list

查看证书状态与到期时间。

🔁 可选:强制立即续签测试

acme.sh --renew -d yourdomain.com --force

📌 总结

方式 是否自动续签 自动部署
阿里云控制台申请免费证书(下载到本地) ❌ 否 ❌ 否
acme.sh + 阿里云 DNS 申请证书(Let's Encrypt) ✅ 是 ✅ 可自动配置
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容