本文参考了使用 acme.sh 申请泛域名证书,大佬写的很好,一学就会~

1. 安装 acme.sh

1
curl https://get.acme.sh | sh -s email=my@example.com

2.生成证书

先注册一个ZeroSSL账号

1
acme.sh --register-account -m [邮箱名]

然后进行dns验证,这里以腾讯云为例,登录 DNSPod 后台

  • 点击页面右上角头像、点击 API 密钥 菜单、选择 DNSPod Token
  • 点击 创建密钥 取一个名称如 acme.sh,就能生成一个随机的 IDToken

然后在命令行里输入:

1
2
export DP_Id=""; # 这边输入你的ID
export DP_Key=""; # 这边输入你的Token

输入以下指令申请泛域名证书:

1
acme.sh --issue --dns dns_dp -d 002026.xyz -d *.002026.xyz # 这里的002026.xyz要换成自己的域名

这样就算申请成功啦!

3.证书安装

生成的证书位置如上图所示,我们可以手动copy文件到对应的目录,也可以使用acme.sh提供的安装命令。

以下是安装到Nginx的命令。

1
2
3
4
acme.sh --install-cert -d 002026.xyz -d *.002026.xyz \
--key-file /usr/local/nginx/key.pem \
--fullchain-file /usr/local/nginx/fullchain.cer \
--reloadcmd "service nginx force-reload"

在nginx的conf文件里增加几行代码:

1
2
3
ssl_certificate /usr/local/nginx/fullchain.cer;
ssl_certificate_key /usr/local/nginx/key.pem;
ssl_trusted_certificate /usr/local/nginx/fullchain.cer;

4.证书更新

acme.sh会自动创建一个cron job,用于自动更新证书。

我们可以使用crontab -l来进行查看,这里的意思是每天下午1:30检查证书是否需要更新:

可以使用以下命令查看已安装的证书:

1
acme.sh --info -d 002026.xyz # 这里换成你的域名