[2019.06.10] Certbot 通过DNS记录获取证书

Author Avatar
柊 ゆり子 2019年06月10日
  • 在其它设备中阅读本文章

封面配图 PID 73415224




》高考考完啦!撒花《

[Let's Encrypt] 乃当下一良心证书颁发机构,其提供的免费证书几乎可以永久续期,直到本体倒闭,我™ 吹 爆 !

通常,我们使用certbot程序获取证书。certbot将调用letsencrypt的服务器访问你的网站(通常是 80 端口)验证域名是否属于我们。但有时候,运行的网页服务器可能是 NAT VPS, 或者你需要在某台内网的主机上撸一张证书另作他用,这时候letsencrypt会甩出不能访问服务器 (Connection refused/timeout) 的信息,然后退出。

当然 [Let's Encrypt] 也考虑到了这种情况,于是呢,cerbot提供了一个可用的参数→ --preferred-challenges dns

打开终端,输入命令:sudo certbot --manual --preferred-challenges dns certonly 回车

Capture.PNG

输入域名并回车后,会有是否允许记录 IP 的提示

Capture2.PNG

敲 Y,允许记录。这时候certbot会给出要求添加的 DNS 记录。如下图↓

4209607946.png

进入你的域名解析控制面板,并添加相应的 TXT 记录(这里以 Cloudflare 为例)

Capture.PNG

添加后可以使用nslookup测试添加的记录是否生效↓

nslookup -q=TXT _acme-challenge.二级域名 1.1.1.1

Capture.PNG

↑像这样子就是可以了的意思
我们回到certbot中,按回车继续~
不出意外的话就成功了。证书会放置在/etc/letsencrypt/archive/域名

** 注意!certbot 给出的路径中存放的是连接(Linux symbolic),不能直接复制的!
真正的证书在/etc/letsencrypt/archive/域名中 **

Capture.PNG

你可以把证书和 key 一起 COPY 出来,放到想用的地方,接上需要使用的程序。

PS: 三个月后如果需要续签,可以直接运行certbot renew。要注意的是,DNS 记录需要一直保持,否则证书是无法更新的。

本文链接:https://blog.hiirachan.moe/archives/131.html
This blog is under a CC BY-NC-SA 3.0 Unported License

本站不提供任何可用于侵入、非法控制计算机信息系统的程序、工具
不提供非法定信道进行国际联网

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

    XYenon
    XYenon  2020-01-09, 14:55

    像我这种懒人就直接用 acme.sh 了(跑