DNS中的TXT记录和强制SSL证书的关系

在启用了Sectigo的全站SSL后,会自动的在DNS设置内添加一个TXT记录.类似

TXT-Record: 201709070554452mwbv8q0pk9py5r8qongpqm7wudpnjtayd66rgjbn9jpemdnzi

这样所有的请求会被转到不是A记录内指定的IP地址了.

但是,如果你取消SSL后,这个TXT记录不会自动消除.造成指向错误.清除这个TXT记录后,故障消失

Letsencrypt通过DNS TXT记录来验证域名有效性

我们在使用letsencrypt获取免费的HTTPS证书的时候,letsencrypt需要对域名进行验证。默认情况下它的验证方式是这样的:

certbot程序在web目录的根目录下放置一个文件。

letsencrypt的独立服务器通过域名来访问这个文件,来验证你申请的域名是属于你的

但有时候我们想为内网的某台主机设置HTTPS,因为内网的主机无法被letsencrypt的服务器访问到,certbot –nginx certonly就会出现Connection refused的错误。

为了解决上述问题,我们可以更改验证方式,使用DNS记录来验证域名。

利用certbot获取证书 更多相关内容请阅读:免费SSL证书和付费SSL证书的区别

运行sudo certbot –manual –preferred-challenges dns certonly命令,输入域名并同意记录本机IP后开始获取证书,接着certbot就会弹出如下的提示:

——————————————————————————-

Please deploy a DNS TXT record under the name

_acme-challenge.example.com with the following value:

IMdfdsfsJDqBRyRaaEgPPQlEuvtxJQAgWZTIVbLuzDi8U

Once this is deployed,

——————————————————————————-

Press Enter to Continue

此时certbot程序就会暂停,等待我们去添加DNS记录。

添加DNS的TXT记录

看到上述的提示后,修改域名的DNS记录,添加一条TXT记录,主机名为_acme-challenge,而其中的内容就是letsencrypt生成的随机字符串IMdfdsfsJDqBRyRaaEgPPQlEuvtxJQAgWZTIVbLuzDi8U。

验证成功

添加好DNS记录后,我们可以通过dig -t txt _acme-challenge.example.com来查看域名的内容,域名生效以后,在certbot程序中下按下回车键,程序继续运行。letsencrypt对DNS记录验证成功,证书就申请成功了。 更多的相关内容可以阅读:   SSL证书的类型有哪些