最近重新做网站,结果发现SSL创建失败,经排查发现是LNMP带的创建SSL脚本acme.sh更换了证书提供商,从LETS encrypt 改为ZEROssl,查询教程,最终解决了该问题,整理如下。
注意:由于v3,acme.sh使用 Zerossl 作为默认证书颁发机构 (CA)。需要先注册账户(一次性),然后才能颁发新证书。另请参阅: https: //github.com/acmesh-official/acme.sh/wiki/Change-default-CA-to-ZeroSSL
1.注册您的账户。
1a. 使用电子邮件地址
acme.sh --register-account -m myemail@example.com --server zerossl
1b. 持有 EAB 凭证
或者,如果您注册了一个ZeroSSL 帐户,acme.sh请使用外部帐户绑定(EAB)凭据进行引导,如下所示:
从https://app.zerossl.com/developer生成您的 EAB 凭证
注册您的 EAB 凭证。
acme.sh --register-account --server zerossl \
--eab-kid xxxxxxxxxxxx \
--eab-hmac-key xxxxxxxxx
拥有 ZeroSSL 账户的用户可以从开发者控制台管理颁发的证书。
2.颁发证书
使用 Zerossl.com 进行以下操作--server zerossl:
acme.sh --server zerossl \
--issue -d example.com \
--dns dns_cf
如果不想--server zerossl每次颁发证书时都指定,可以设置zerossl为默认CA:
acme.sh --set-default-ca --server zerossl
阅读:https ://github.com/acmesh-official/acme.sh/wiki/Server
从zerossl颁发任何证书,无需指定--server:
acme.sh --issue -d example.com --dns dns_cf
- 故障排除
Le_OrderFinalize:必须指定 KeyID
如果证书颁发失败,并且您在日志中看到类似这样的内容
[XYZ 18 09:50:07 -02 2020] Create new order error. Le_OrderFinalize not found.
{"type":"urn:ietf:params:acme:error:malformed","status":400,"detail":"A Key ID MUST be specified"}
然后,重新生成您的 EAB 凭证(参考步骤 2)并重新运行证书颁发。请参阅:acme.sh/issues/3310。
评论 (0)