泛域名证书申请
1. 安装 acme.sh
curl https://get.acme.sh | sh
注意:安装完成后,需要重新加载 shell 配置文件(比如
.bashrc或.zshrc),或者直接重新启动终端。
2. 配置 ZeroSSL 为默认 CA
acme.sh 默认使用 Let's Encrypt 作为 CA,将其切换为 ZeroSSL
acme.sh --set-default-ca --server zerossl
3. 注册 ZeroSSL 账户
acme.sh --register-account -m your-email@example.com
将 your-email@example.com 替换为你的邮箱地址。
📝 注意:
如果你之前已经注册过,
acme.sh会直接使用现有的账户信息,不会重复注册。
4. 获取 DNSPod API 密钥
登录 DNSPod 控制台,进入“账号中心” 下的 “API 密钥” 页面,点击 “DNSPod Token” 页卡,创建一个新的密钥,并记录下 ID 和 Token。
📝 注意:
DNSPod 平台密钥创建后,再点击“我已保存”后才会生效。
5. 设置 DNSPod API 环境变量
在终端中运行以下命令,设置 DNSPod 的 API 密钥:
export DP_Id="你的DNSPod_API_ID"
export DP_Key="你的DNSPod_API_Token"
将 你的DNSPod_API_ID 和 你的DNSPod_API_Token 替换为实际的 ID 和 Token。
6. 申请泛域名证书
acme.sh --issue --dns dns_dp -d example.com -d *.example.com
其中:
dns_dp表示使用 DNSPod 的 DNS API。example.com是你的主域名。*.example.com是泛域名。
注意:泛域名证书只能通过 DNS 验证方式申请。
7. 安装证书
证书申请成功后,可以使用以下命令将证书安装到指定目录:
acme.sh --install-cert -d example.com \
--key-file /path/to/private.key \
--fullchain-file /path/to/fullchain.crt \
--reloadcmd "service nginx reload"
将以下内容替换为你的实际路径和命令:
/path/to/private.key:私钥文件路径。/path/to/fullchain.crt:证书文件路径。service nginx reload:重新加载 Web 服务器的命令(如 Nginx、Apache)。
8. 验证证书
可以使用以下命令验证证书是否已正确安装,以确保证书的域名和有效期正确。
openssl x509 -in /path/to/fullchain.crt -text -noout
9. 自动更新证书
acme.sh 在安装时会自动添加一个 cron 任务,可以通过以下命令查看是否存在:
crontab -l
你应该会看到以下内容:
44 6 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
这表示 acme.sh 会在每天早晨 6:44 检查证书是否需要更新。
如果你想立即测试证书更新功能,可以手动运行以下命令:
acme.sh --cron
acme.sh 会检查所有已申请的证书,并在需要时更新。在申请证书时,由于已经通过 --reloadcmd 参数指定了重新加载服务的命令(如 service nginx reload),所以 acme.sh 在更新证书后会自动执行该命令,来确保新证书生效。
如果系统没有启用 cron 服务,acme.sh 的自动更新功能将无法正常工作。可以通过以下命令检查 cron 服务状态
systemctl status cron
如果未运行,可以启动并启用它:
systemctl start cron
systemctl enable cron
10. 手动更新证书
在进行手动更新前,先检查 DNSPod API 环境变量是否存在:
echo $DP_Id
echo $DP_Key
手动执行 cron 任务:
acme.sh --cron
重新安装证书:
acme.sh --install-cert -d example.com \
--key-file /path/to/private.key \
--fullchain-file /path/to/fullchain.crt \
重启 Nginx:
docker-compose restart nginx

Comments NOTHING