acme.sh生成证书
使用 DNSPod 和 ZeroSSL 生成 SSL 证书
本文将指导您通过 DNSPod 和 ZeroSSL 自动化生成 SSL 证书,适用于需要为域名配置 HTTPS 的场景。以下是详细步骤。
前提条件
- 已拥有 DNSPod 账户。
- 已安装
acme.sh
工具(参考:acme.sh 安装指南)。 - 拥有一个注册的域名(本例中使用
262686.xyz
和其子域名)。
步骤
1. 生成 DNSPod API 密钥
-
登录 DNSPod 控制台。
-
创建一个新的 API Token,获取
ID
和Key
。例如:- ID:
588134
- Key:
xxxxx
- ID:
-
在终端中设置环境变量:
export DP_Id="588134" export DP_Key="xxxxx"
2. 关联 ZeroSSL 账户
使用 acme.sh
注册 ZeroSSL 账户:
acme.sh --register-account -m liuforhacker@gmail.com --server zerossl
- 确保邮箱地址有效,ZeroSSL 将通过此邮箱进行验证。
--server zerossl
指定使用 ZeroSSL 作为证书颁发机构。
3. 申请 SSL 证书
为您的域名申请证书。以下是两种常见场景:
场景 1:为泛域名和特定子域名申请证书
运行以下命令为泛域名 *.262686.xyz
和子域名 boliu-c.262686.xyz
申请证书:
acme.sh --dns dns_dp --issue -d *.262686.xyz -d boliu-c.262686.xyz
--dns dns_dp
指定使用 DNSPod 的 DNS API 进行域名验证。-d
参数指定需要申请证书的域名。
场景 2:仅为特定子域名申请证书
如果只需要为子域名 boliu-c.262686.xyz
申请证书,运行:
acme.sh --dns dns_dp --issue -d boliu-c.262686.xyz
4. 验证和安装证书
acme.sh
将自动通过 DNSPod API 添加 TXT 记录以完成域名验证。- 验证通过后,证书将存储在
~/.acme.sh/
目录下,具体路径为~/.acme.sh/域名/
。 - 您可以将证书配置到 Web 服务器(如 Nginx 或 Apache)中,具体配置方式请参考服务器文档。
注意事项
- 密钥安全:确保
DP_Id
和DP_Key
妥善保存,避免泄露。 - 证书续期:
acme.sh
默认支持自动续期,可通过acme.sh --cron
检查和续期证书。 - 调试问题:如果证书申请失败,可使用
--debug
参数查看详细日志:acme.sh --dns dns_dp --issue -d *.262686.xyz --debug