03-泛域名证书申请

nobility 发布于 2025-10-21 01-个人知识管理系统 1832 次阅读


泛域名证书申请

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” 页卡,创建一个新的密钥,并记录下 IDToken

📝 注意:

DNSPod 平台密钥创建后,再点击“我已保存”后才会生效。

5. 设置 DNSPod API 环境变量

在终端中运行以下命令,设置 DNSPod 的 API 密钥:

export DP_Id="你的DNSPod_API_ID"
export DP_Key="你的DNSPod_API_Token"

你的DNSPod_API_ID你的DNSPod_API_Token 替换为实际的 IDToken

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
加油啊!即便没有转生到异世界,也要拿出真本事!!!\(`Δ’)/
最后更新于 2025-10-21