Let's Encrypt的泛域名证书
原先Let’s Encrypt只支持单域名证书,虽然可以多个域名共用一个证书,但如果子域名多并且分布于不同的服务器上,配置起来还是很麻烦的。还好从certbot 0.22开始(我现在用的是0.26.1,通过pip安装的版本通常会比apt之类装的版本更新一些),Let’s encrypt终于开始支持泛域名证书。这东西好是好,但是只能用DNS验证,如果域名注册商没有提供API,或者没有相应的插件,那么就无法自动renew了,每三个月需要自己手工更新一次,比较麻烦。
操作方法如下:
certbot certonly --manual --email <your_email> -d your_domain.com -d "*.your_domain.com" --preferred-challenges dns --agree-tos --server https://acme-v02.api.letsencrypt.org/directory --manual-public-ip-logging-ok
上面加了很多参数,免去了很多不必要的提示,但必要的提示操作还是必不可少的。
所以上面的命令运行之后会提示你,需要在_acme-challenge.your_domain.com
这个子域名的txt记录里配置上一个特定的字符串,用于验证域名所有权。
配置好后按回车,验证通过之后会出来另外一个字符串,再次创建一个同名的txt记录填写这个新的串。
注意:要保持有两个同名的TXT记录记录这两个不同的验证字符串。
再次回车等待验证。
验证通过后即可获得证书,保存在:/etc/letsencrypt/live/your_domain.com/
下面(实际上是几个Symbol link,连到archive下面)。
如果验证失败,可能是DNS更新没有那么快,可以在两次验证的回车之前先用nslookup检查一下是否生效,确定生效再回车。
nslookup
>set type=txt
>_acme-challenge.your_domain.com
注意,如果反复失败请检查错误信息,盲目重试会导致超过重试限制而无法注册。
另外,因为无法自动renew,必须每三个月重复以上步骤更新证书。
推送到[go4pro.org]