通过 ACME 手动签发 Buypass 及 ZeroSSL 证书

一、安装 ACME
只需要执行一下这条命令就可以一键安装,然后我并没有把证书托管到他自动化所以就直接在 crontab -e 将它的计划任务注释掉了。

curl https://get.acme.sh | sh

二、配置 API

ZeroSSL 获取 EAB 凭证,在此注册并获取 https://app.zerossl.com/developer 。然后执行以下命令将账户信息导入 ACME 。

acme.sh --register-account --server zerossl --eab-kid [账户 eab-kid] --eab-hmac-key [账户 eab-hmac-key]

Buypass 则只需要注册一下账户即可。

acme.sh --server https://api.buypass.com/acme/directory --register-account --accountemail [你的邮箱]

三、签发证书

因为我是偶尔使用,所以这次写的直接用 DNS 手动模式进行签发,首先执行 issue 进行签发它会返回错误信息告诉你没有正确添加 DNS 记录。

acme.sh --server https://api.buypass.com/acme/directory --issue -d [你的域名] --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please

然后按照他的错误信息手动去 DNS 添加完,再执行一次 renew 就可以正确签发了。

acme.sh --server https://api.buypass.com/acme/directory --renew -d [你的域名] --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please

对于 ZeroSSL,只需要把前面的—server 换成 zerossl,并且可以包含多个域名进行签发,例如下面这样

acme.sh --server zerossl --issue -d [你的域名 1] -d [你的域名 2] --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please

手动进行 file 验证则把包括–dns 后的内容全部换为-w [验证文件目录]即可,比如下面这样。手动把验证文件复制到你网站目录下,然后和 dns 方式一样 renew 一次验证就可以了。

acme.sh --server zerossl --issue -d [你的域名 1] -d [你的域名 2] -w [验证文件目录]

四、部署证书

签发后的证书在你的用户文件夹下 .acme.sh 文件夹下面,fullchain.cer 是你的完整证书,.key 就是你的密钥文件。之后续签这个证书依然可以使用上面的 renew 指令,在手动添加记录后再进行 renew 即可。

有一点要注意,一键安装后 acme.sh 并不会作为系统指令链接到脚本,你可以选择自己 ln -s 到 /usr/bin 或者自己进入 .acme.sh 的目录执行这个脚本,效果是完全一样的。

转自:https://www.v2ex.com/t/768691

Previous Post Next Post

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注