ZeroSSL 和 Buypass 在 acme 端都有提供别具特色的证书服务。ZeroSSL 与 Let‘s Encrypt 功能重合且没有签发速率限制,Sectigo 的根证书以及网站管理页面也是不错的加分项。至于 Buypass,其能够免费签发 180 天的 DV 单域名证书,与亚信等用途类似不过并不需要实名认证或者手机号之类的敏感信息。
之前不少人都是直接在 freessl.org 进行签发,后来改版之后就只剩下付费的选择了。而 ACME 在设计上更倾向于证书托管自动更新的方式,而像我这种临时签发证书测试或者用在一些不能使用 ACME 的平台上时,手动签发还是有一定的意义。
安装 ACME 的服务器要跟 Buypass 和 ZeroSSL 的 API 能够稳定通信,我这里就用的腾讯云香港 24 的轻量作为演示,不仅国内操作比较稳定而且国际方向速度也很快。前段时间宝塔发布了腾讯云定制版,然后赠送了很多的轻量代金卷,选择轻量的大佬应该不在少数。
一、安装 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 [验证文件目录]