背景
自己的服务器由于是放在家里的,使用着电信的网络,所以会有不少限制,其中有一个很重要的限制就是无法使用80端口。
这就使得常规的certbot认证方式无法使用,需要使用其他的方式认证。
DNS认证
letsencrypt支持使用DNS认证的方式来获取证书,这种方式需要在DNS里面添加TXT记录来证明域名是你自己的。
这种方式只能使用certonly功能,因此安装时需要自己修改相应的服务器配置,无法让certbot帮忙修改。
只需要运行一下命令即可,1
sudo certbot certonly --manual --preferred-challenge dns -d <你的域名>
然后首先会告知你会记录你的IP,选择Y,接着会出现一个提示,要你把_acme-challenge.<你的域名>
设置成TXT记录,值也会写出来,设置好以后等待生效回车即可。
成功以后,就会告诉你证书路径,只需要替换掉服务器的配置里面的证书即可。
总结
这个方法适合默认方式无法获取证书的情况,对于我们这种在家里自己假设服务器的情况很实用。