ZeroSSL和Buypass在acme端都有提供别具特色的证书服务。ZeroSSL与Let‘s Encrypt功能重合且没有签发速率限制,Sectigo的根证书以及网站管理页面也是不错的加分项。至于Buypass,其能够免费签发180天的DV单域名证书,与亚信等用途类似不过并不需要实名认证或者手机号之类的敏感信息。
之前不少人都是直接在freessl.org进行签发,后来改版之后就只剩下付费的选择了。而ACME在设计上更倾向于证书托管自动更新的方式,而像我这种临时签发证书测试或者用在一些不能使用ACME的平台上时,手动签发还是有一定的意义。
安装ACME的服务器要跟Buypass和ZeroSSL的API能够稳定通信,我这里就用的腾讯云香港24的轻量作为演示,不仅国内操作比较稳定而且国际方向速度也很快。前段时间宝塔发布了腾讯云定制版,然后赠送了很多的轻量代金卷,选择轻量的大佬应该不在少数。
只需要执行一下这条命令就可以一键安装,然后我并没有把证书托管到他自动化所以就直接在crontab -e将它的计划任务注释掉了。
curl https://get.acme.sh | sh
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的目录执行这个脚本,效果是完全一样的。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。