验证的三种方式:
- 域名备案;这个不用说了吧,说多了也不好;
- 暂时将域名解析到境外服务器,获取到证书更新后再解析回来;
- 域名验证从http改成dns。
前两个办法比较简单,本文不再多说。这里说一下用dns方式验证域名的步骤。
dns验证有两个重要参数:
- –preferred-challenges,验证方式,填写dns或dns-01;
- –server, 验证服务器,填写https://acme-v02.api.letsencrypt.org/directory
还有一个--manual
参数,但在“非交互式”环境下,必须同时指定--manual-auth-hook
选项。什么是“非交互式”环境?renew
就是非交互式环境,因为不需要外部输出和参与;而certonly
(一般)是交互式的,因为执行过程中需要用户输入必要的信息。
本人没看auth-hook
脚本的写法,所以用dns方式renew
证书是不可行了。那就干脆重新再获取一次证书吧!输入命令:
certbot certonly -d 域名 --preferred-challenges dns --manual --server https://acme-v02.api.letsencrypt.org/directory
命令会询问是否同意记录当前机器的ip,必选“y”(选n会导致脚本退出)。接着命令会输出dns记录的验证信息,按照指定值在dns控制台加上 TXT 记录。dns记录添加完成后等半分钟左右让记录生效,然后按回车键,记录无误的话证书就生成了。
感谢伟大的防火墙和备案机制,又让我长见识了!