acme中有关zerossl的失败

在某些自动化脚本中,需要安装ssl证书时,可能会出现如下的提示:
[Sat Oct 15 10:28:50 AM UTC 2022] Using CA: https://acme.zerossl.com/v2/DV90 [Sat Oct 15 10:28:50 AM UTC 2022] Create account key ok. [Sat Oct 15 10:28:50 AM UTC 2022] No EAB credentials found for ZeroSSL, let's get one [Sat Oct 15 10:28:50 AM UTC 2022] acme.sh is using ZeroSSL as default CA now. [Sat Oct 15 10:28:50 AM UTC 2022] Please update your account with an email address first. [Sat Oct 15 10:28:50 AM UTC 2022] acme.sh --register-account -m my@example.com [Sat Oct 15 10:28:50 AM UTC 2022] See: https://github.com/acmesh-official/acme.sh/wiki/ZeroSSL.com-CA [Sat Oct 15 10:28:50 AM UTC 2022] Please add '--debug' or '--log' to check more details. [Sat Oct 15 10:28:50 AM UTC 2022] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh 2022-10-15 10:28:50 - 申请证书失败,请尝试手动申请证书.

看很多网上搜索说什么指令 letsencrypt之类的解决方法。

其实log已经提示方案了:

apt install socat
curl  https://get.acme.sh | sh
acme.sh --register-account -m my@example.com

脚本失败后,可以先单独安装acme,执行如上操作,测试可以单独成功,比如
sudo ~/.acme.sh/acme.sh --issue -d mydomain.com --standalone -k ec-256
确认可以成功后,在重新执行脚本,基本就能解决问题。

通过acme的DNS方式实现letsencrypt通配证书泛证书的自动更新

详细完整参见:
https://github.com/Neilpang/acme.sh/wiki/说明

文章已经讲的很详细了,现就就DNS和通配相关的使用做简要摘录和关键步骤说明

想要实现通配证书,目前dns方式是唯一的方式。

  1. 安装

    curl  https://get.acme.sh | sh
  2. 重定向
    打开 .bashrc,添加 alias acme.sh=~/.acme.sh/acme.sh ,方便命令输入

  3. 生成证书。
    默认dns是需要手动添加域名记录验证归属合法性的,通过dnspod这样的第三方平台 API,我们就可以实现自动验证的功能。

    export DP_Id="1234"
    export DP_Key="sADDsdasdgdsf"
    acme.sh   --issue   --dns dns_dp   -d  *.aa.com

    dnspod的token申请路径:https://www.dnspod.cn/console/user/security

这期间可能提示你需要:

acme.sh --register-account -m aaa@bbb.com

注意,DNS的账号信息,只需要操作一次,系统会自动记录到配置文件,后面直接使用"--dns dns_dp" 就可以。

  1. 证书的安装
    证书默认是在~/.acme.sh/通配域名/目录下的,通过安装可以安装到我们指定的生产环境路径。

注意,下面的命令不会自动创建目录,如果目录不存在,需要手动提前创建。

rsa 密钥:

acme.sh --install-cert -d *.aa.com --key-file /path/domain/privkey.pem --fullchain-file /path/domian/fullchain.pem --reloadcmd "systemctl force-reload nginx.service"

说明:以上两个路径是安装的目的地址,也就是将第3步的证书内容,按照这个命令中的地址,进行安装。

ecc 密钥:

acme.sh --install-cert --ecc -d *.aa.com --key-file /path/domain/privkey.pem --fullchain-file /path/domian/fullchain.pem --reloadcmd "systemctl force-reload nginx.service"

以上相关的操作都会被acme脚本自动记录,并且在证书自动更新的时候会自动执行。

  1. 证书的更新
    完成以上后,acme就会自动帮你更新证书了。

  2. acme.sh本身的自动更新
    开启:acme.sh --upgrade --auto-upgrade
    关闭:acme.sh --upgrade --auto-upgrade 0

  3. acme的卸载
    acme.sh --uninstall