一、写本外壳背景
acme.sh 使用 DNS alias mode 功能 申请 Let's Encrypt 证书,如果申请DNS域大约超过8个以上就会遇到
Incorrect TXT record
错误。本人大致看了acme.sh
脚本alias mode
功能暂时没有发现脚本中间有bug,后本人没有办法就在acme.sh
脚本外面套一层外壳,具体使用方法见下面内容。
二、使用本外壳前准备环境
acme.sh 脚本安装
设置DNS CNAME 记录
安装
Python3
环境阅读原文获取下载 letsencrypt-dns-alias.py 链接
三、本外壳使用注意
只支持
DNS alias mode 功能
。只支持
--challenge-alias
参数,不支持--domain-alias
参数。不能往外壳传入
--domain -d --domain-alias --challenge-alias --dns --log-level --log
参数。每次向
Let's Encrypt
申请5个域名,依次累加,申请通过的域名在一断时间内不需要再次验证。开启记录日志模式,日志级别为
2
。申请证书失败时,支持重试2次,每次等待20秒。
acme.sh
脚本一定要安装在/root/.acme.sh
目录下
四、使用方法
第一次使用下面命令
$ letsencrypt-dns-alias.py --command="--issue" --challenge-alias="alias domain" --dns="dns_ali" --key-name="Ali_Key" --secret-name="Ali_Secret" --key="***" --secret="***" --domain="*.a.com,*.b.com"
如果
acme.sh
脚本已记录DNS厂商AK值,可以使用下面命令。
$ letsencrypt-dns-alias.py --command="--issue" --challenge-alias="alias domain" --dns="dns_ali" --domain="*.a.com,*.b.com"
上面命令中
--key-name="Ali_Key" --secret-name="Ali_Secret"
是DNS厂商api名称,具体api支持见How to use DNS API。