阿里云主机自动 HTTPS 证书部署踩坑实录
阿里云主机自动 HTTPS 证书部署踩坑实录
前言
请原谅本篇标题,阿里云其实非常好用,只是细节很多,尤其是在HTTPS证书的配置和使用上。希望通过这篇文章,能够帮助到遇到类似问题的朋友们。
原理
服务器运行 acme.sh 脚本,自动申请和更新 Let’s Encrypt 的 SSL 证书。acme.sh 使用阿里云的 DNS API 来验证域名所有权,并获取证书。
📌 NOTE
笔者实测,使用阿里云用户的 AccessKey ID 和 SecretKey 进行 DNS 验证,acme.sh 可以自动申请和更新 Let’s Encrypt 的 SSL 证书。(不像有些材料里反应的说不行)
要点
在证书的申请过程中,acme.sh 会使用阿里云的 DNS API 来验证域名所有权。验证过程需要在阿里云的 DNS 控制台上添加特定的 TXT 记录,显然这个修改必须要有权限才行。
如何获得这个权限呢?最简单的方式是使用阿里云的 RAM (Resource Access Management) 服务来创建一个具有最小权限的子用户。这样可以确保你的 AccessKey ID 和 SecretKey 只拥有 acme.sh 执行自动更新证书所需的确切权限。
所以操作概要(有瑕疵)如下:
- 在阿里云控制台创建一个 RAM 用户:不用主账户的原因是为了安全和权限控制,主账户的权限过大,不适合用于自动化脚本
- 为该用户配置权限策略,允许其操作 DNS 记录