AI摘要:ACME通过阿里云DNS验证申请证书的过程包括:使用acme.sh工具,通过阿里云DNS公开API和用户AK进行交互。首先在阿里云RAM访问控制中创建用户并设置权限,然后生成AccessKeyId和AccessKeySecret。在.bashrc文件中配置这些密钥,并使用acme.sh命令进行DNS验证和证书颁发,支持单域名、多域名和泛域名。
Powered by 部落Bot.

需求与目的

由于某些特殊原因(站点仅作为反向代理或者在内网),需要选择通过域名 DNS(配置一个随机的 TXT 记录)的方式来做证书申请的验证

acme.sh 支持多种域名验证方式,详细列表点这里。这里以我们常用的阿里云 DNS 为例。

acme.sh 访问阿里云 DNS 是通过阿里云 DNS 公开 API 以及用户的 AK 来进行交互的。

阿里云 AK 是使用RAM访问控制来添加的。操作如下:

RAM 用户

  1. 打开访问控制,然后点击“身份管理”,点击“创建用户”,输入用户名、备注;
  2. “访问方式”选择OpenAPI 调用访问 启用 AccessKey ID 和 AccessKey Secret,支持通过 API 或其他开发工具访问
  3. 点击右边的“添加权限”按钮,打开授权窗口。

权限

在授权窗口搜索“DNS”,选择“管理云解析(DNS)的权限”。
aliyun_ram.png

密钥

  1. 点击新建的RAM用户进入详情页面。
  2. 在下方点击“创建 AccessKey”,弹出创建成功对话框,对话框里显示了“AccessKeyId”和“AccessKeySecret”,先保存下来。

添加配置

.bashrc 里添加

export Ali_Key="AccessKeyId"
export Ali_Secret="AccessKeySecret"

然后

source ~/.bashrc

颁发证书

DNS 验证

可以进行单域名、多域名、泛域名进行颁发。

acme.sh --issue --dns dns_ali -d xxx.com -d *.xxx.com

acme-dnsapi.png
这里会进行域名的 DNS 验证,中间会等待 120 秒来验证正确性,验证成功后会有成功标记。