阿里云证书免费3个月在服务器部署自动续期

2025年09月26日 Linux

在阿里云买的 pro 证书有效期是一年,但是只能免费购买 4 个pro,已经用完了。剩下的就是每年 20 个,每个 3 个月的有效期。每三个月都需要自己去换很麻烦,还会出现忘记的情况,就想着能自动化部署,自动续期就完美。

安装 acme.sh

sudo curl https://get.acme.sh | sh

激活

source ~/.bashrc

配置阿里云 API Key

到阿里云控制台 → RAM 用户 AccessKey 管理

创建专用 RAM 用户

  • 进入 阿里云 RAM 控制台

  • 创建一个 仅用于 SSL 自动续签的子用户(比如叫 acme-cert-bot)

  • 点击「添加权限」,最简单:直接绑定系统策略 AliyunDNSFullAccess 可以管理你账号下所有域名的 DNS 20250926105247

    20250926105304

设置网络访问限制

  • 打开 RAM 控制台 → 用户 → 安全设置
  • 找到「AccessKey 级网络访问限制策略」
  • 添加你的 固定公网 IP(或所在网段)
  • 例如你的 ECS 公网 IP 是 1.2.3.4,就在白名单里填 1.2.3.4/32
  • 如果有多个 ECS,就把多个 IP 都加上
  • 保存后,只有这些 IP 发出的 API 请求才能用这个 AK 点击用户 AccessKey 20250926105335

网络访问限制策略

20250926105349

服务器配置

设置Ali_key

然后在服务器上执行:


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

果想永久生效,可以把这两行加到 ~/.bashrc 或 ~/.profile

echo 'export Ali_Key="你的AccessKeyId"' >> ~/.bashrc
echo 'export Ali_Secret="你的AccessKeySecret"' >> ~/.bashrc
source ~/.bashrc

改用 Let’s Encrypt

  • Let’s Encrypt 不需要 EAB,免费签发 SSL
  • 命令示例(使用阿里云 DNS 验证):
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt
~/.acme.sh/acme.sh --issue --dns dns_ali -d ronhai.com -d www.ronhai.com --keylength ec-256

然后安装证书

~/.acme.sh/acme.sh --install-cert -d ronhai.com \
--ecc \
--key-file       /home/xx/www/ssl/ronhai.com.key \
--fullchain-file /home/xx/www/ssl/ronhai.com.pem \
--reloadcmd      "sudo systemctl reload nginx"

验证证书

~/.acme.sh/acme.sh --list
Main_Domain  KeyLength  SAN_Domains     CA               Created               Renew
ronhai.com   "ec-256"   www.ronhai.com  LetsEncrypt.org  2025-09-23T09:33:37Z  2025-11-21T09:33:37Z
0%