DevsDawn
DevsDawn

使用acme.sh发布更新证书到阿里云CDN

近期各大云平台将免费SSL证书的有效期从1年缩短到90天,证书续期从1年一次变成了一年4次,非常繁琐。虽然我们的业务服务器上已经使用了.acme.sh实现证书自动续期,但由于网站使用了CDN,依然需要人工在阿里云CDN上进行证书配置。

最近看到acme.sh的Github仓库上有贡献者提了阿里云CDN的Deploy Hook PR,于是开始着手给业务部署CDN证书自动续期的功能。

操作步骤

  1. 由于该 PR 尚未合并到主分支,因此需要手动获取该 ali_cdn.sh 文件,上传到服务器~/.acme.sh/deploy目录下。
  2. 在阿里云侧创建一个RAM用户和自定义权限,该用户最低需要有cdn:SetCdnDomainSSLCertificate权限以完成证书部署。
{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "cdn:SetCdnDomainSSLCertificate",
            "Resource": "acs:cdn:*:<accountId>:domain/<domain>"
        }
    ]
}
  1. 记录下创建的RAM用户的Access KeyAccess Secret,配置到acme.sh的Ali_KeyAli_Secret
export Ali_Key="foo"
export Ali_Secret="bar"
  1. 按照acme.sh文档首先完成证书签发,当证书签发完成后,可以使用以下命令部署。
acme.sh --deploy -d example.com --deploy-hook ali_cdn
  • 如果证书为泛域名证书(例如*.example.com)或者需要部署到多个CDN域名,还需要在deploy前首先指定部署的域名,多个域名以空格分隔:
export DEPLOY_ALI_CDN_DOMAIN="s1.example.com s2.example.com"
  1. 出现以下提示,则部署完成,可以到CDN控制台中验证。另外,每一次Deploy都会在“数字证书管理服务”的“SSL证书管理”中新增一个证书,需要手动删除。
Domain example.com certificate has been deployed successfully
Success

若无特别说明,本文采用 CC BY-SA 4.0 协议进行许可。如需转载,请附上本文链接和本声明。
本文链接:https://devsdawn.com/2024/07/aliyun-cdn-certificate-auto-renewal-with-acme-sh/
DigitalOcean云服务,美国上市公司,注册即送200USD体验金
Vultr云服务,全球25+地域,注册即送100USD体验金
没有标签
首页      开发      使用acme.sh发布更新证书到阿里云CDN

发表回复

textsms
account_circle
email

DevsDawn

使用acme.sh发布更新证书到阿里云CDN
近期各大云平台将免费SSL证书的有效期从1年缩短到90天,证书续期从1年一次变成了一年4次,非常繁琐。虽然我们的业务服务器上已经使用了.acme.sh实现证书自动续期,但由于网站使用了CDN,…
扫描二维码继续阅读
2024-07-19