使用 acme.sh 设置 DNSPod 进行域名验证并申请 SSL 证书,需要配置 DNSPod 的 API 密钥,以便自动添加和删除 DNS 解析记录。以下是详细步骤:
一、获取 DNSPod API 密钥
- 登录 DNSPod 控制台
访问 DNSPod 官网,登录你的账号。 创建 API 密钥
- 进入 用户中心 → 安全设置 → API 密钥。
- 点击 创建密钥,记录生成的
ID(如12345)和Token(如abcdef1234567890)。
二、配置 acme.sh 使用 DNSPod API
设置环境变量
在终端中运行以下命令,替换DP_Id和DP_Key为你的 DNSPod API 密钥:export DP_Id="Your_DNSPod_API_ID" export DP_Key="Your_DNSPod_API_Token"- 这些变量会临时存储在终端会话中,若需永久保存,可将它们添加到
~/.bashrc或~/.zshrc文件末尾。
- 这些变量会临时存储在终端会话中,若需永久保存,可将它们添加到
生成证书
执行以下命令申请证书(以通配符证书为例):acme.sh --issue --dns dns_dp -d example.com -d *.example.com--dns dns_dp:指定使用 DNSPod 的 DNS 验证。-d example.com:主域名。-d *.example.com:通配符子域名(可选)。
三、证书安装与自动续期
安装证书到指定目录
证书生成后,默认保存在~/.acme.sh/example.com/。使用以下命令将证书复制到目标路径(如 Nginx):acme.sh --install-cert -d example.com \ --cert-file /etc/nginx/ssl/example.com/cert.pem \ --key-file /etc/nginx/ssl/example.com/key.pem \ --fullchain-file /etc/nginx/ssl/example.com/fullchain.pem \ --reloadcmd "systemctl reload nginx"--reloadcmd:证书更新后自动执行的命令(如重启 Nginx)。
- 自动续期
acme.sh会自动创建定时任务(Cron Job),无需手动操作。续期时会复用已配置的DP_Id和DP_Key。
四、验证与常见问题
- 验证 DNS 记录
执行命令后,acme.sh会自动在 DNSPod 中添加一条_acme-challenge.example.com的 TXT 记录。申请成功后,该记录会被自动清理。 权限问题
- 确保 API 密钥有 修改 DNS 解析 的权限。
- 如果域名不在 DNSPod 中托管,需先将域名解析迁移到 DNSPod。
调试命令
若遇到问题,添加--debug参数查看详细日志:acme.sh --issue --dns dns_dp -d example.com --debug
五、完整示例
# 设置 DNSPod API 密钥
export DP_Id="12345"
export DP_Key="abcdef1234567890"
# 申请证书(主域名 + 通配符)
acme.sh --issue --dns dns_dp -d example.com -d *.example.com
# 安装证书到 Nginx
acme.sh --install-cert -d example.com \
--key-file /etc/nginx/ssl/example.com/key.pem \
--fullchain-file /etc/nginx/ssl/example.com/fullchain.pem \
--reloadcmd "systemctl reload nginx"通过以上步骤,你可以利用 acme.sh 和 DNSPod 的 API 快速申请并管理 SSL 证书,支持自动续期,适合生产环境使用。
评论 (0)