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

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

文章已经讲的很详细了,现就就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/通配域名/目录下的,通过安装可以安装到我们指定的生产环境路径。

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

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"

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

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

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