Certbot之仅申请证书、在内网中申请证书、DNS01

这篇博客介绍了如何在没有公网服务器或HTTP站点的内网环境中,使用Certbot结合DNS验证来申请Let's Encrypt证书。步骤包括手动执行命令申请证书、添加DNS TXT记录、按下回车完成验证以及手动使用证书。还提到了使用AuthHook和CleanupHook自定义脚本自动化DNS记录的添加和清理,以简化流程。此外,文章讨论了证书的自动续期设置和注意事项。

原文地址:Certbot之仅申请证书、在内网中申请证书、DNS01(永久地址,保存网址不迷路 🙃)

问题描述

在申请证书时,我们按照 Certbot 官方指引,需要公网服务器,并且 HTTP 站点在线(这主要是为了完成 HTTP 质询,以证明域名所有权)。当证书签发结束后,Certbot 程序将修改 Nginx 配置文件以使用新的证书。整个过程一步到位,开箱即用,非常方便。

但是存在特殊场景:我们站点在内网,未对外公开,这样便无法完成 HTTP 质询,就无法进行签发证书;我们的 Web server 未受到 Certbot 的支持,因此无法自动修改配置文件,需要我们仅申请证书,然后自行修改配置文件。总之,这些特殊场景的存在,需要我们仅申请证书,而不能使用 Certbot 的自动化配置。

该笔记将记录:在 Certbot 中,仅申请证书的方法,以及相关问题的处理、解决方案。

解决办法

除了 HTTP 质询,我们还能使用 DNS 质询方法:
1)在申请证书时,根据要求添加 DNS 记录;
2)然后 Let's Encrypt(ACME Server)检查该记录,以验证域名的所有权;
3)在检查通过后,进行证书签发,并自动保存在服务器中;
4)最后,我们修改 Web server 配置,以使用该证书文件;

第一步、开始申请证书

执行如下命令开始申请证书,按照提示操作即可:

certbot certonly --manual --preferred-challenges dns -d example.com

第二步、添加解析记录

当命令执行中,会收到类似如下提示,要求添加 TXT 解析记录:

Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:

667drNmQL3vX6bu8YZlgy0wKNBlCny8yrjF1lSaUndc

Once this is deployed,
Press ENTER to continue

根据上面提示,登录云商后台(比如阿里云、腾讯云等等),添加名为 _acme-challenge.example.comTXT 记录,并使用 667drNmQL3vX6bu8YZlgy0wKNBlCny8yrjF1lSaUndc 作为记录值。

注意事项:
1)由于 DNS 记录不会马上生效,所以稍后再按回车键。
2)使用 dig +short -t txt _acme-chall

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值