在
我们可以使用nsupdate命令来更新域名记录,而不直接修改zone文件。
当我们在主服务器上使用nsupdate时更新记录需要使用密钥,如果没有参照这里生成密钥。
并且在使用nsupdate时密钥最好为一个单独的文件调用(不如你需要以-y keyname:secret的形式填入),使用的密钥需要添加在/etc/bind/named.conf.local
中的allow-update { key "acme"; };
意为允许列表中的密钥更新域名记录
nsupdate -l -k "/var/cache/bind/acme.key"
-l 为本地(local)在其它服务器上使用不带这个参数,-k 密钥文件参数,相关语法参考IBM
> server 192.168.1.1 //或者 ns1.example.tld 从其它服务器更新时先指定主服务器,本机使用不需要 > zone example.tld //选择要更改的 > update add box1.example.tld. 3600 A 10.9.9.9 //添加记录,需使用完整的主机名并且注意末尾的点 > update delete box1.example.tld. A //删除记录,需使用完整的主机名并且注意末尾的点 > show //显示当前会话中的所有更新 > send //发送变更 > quit //退出nsupdate命令
当我们使用自己的域名解析服务器时,可以在acme.sh
中使用dns_nsupdate
来申请证书
export NSUPDATE_SERVER="dns.example.com" export NSUPDATE_KEY="/path/to/your/nsupdate.key" //只需要设置为环境变量一次,acme会自动保存 acme.sh --issue --dns dns_nsupdate -d example.com