You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用DuckDNS完成Let's Encrypt的多类型DNS验证(普通证书+通配符证书)

如何使用DuckDNS完成Let's Encrypt的多类型DNS验证(普通证书+通配符证书)

咱个人搞网站或者服务的,想要用上HTTPS的SSL/TLS证书,不管是普通单域名证书还是能覆盖所有子域名的通配符证书,用Let's Encrypt结合DuckDNS就能搞定,再配上Certbot自动续期,全程免费还省心。

先说说用到的几个工具

  • Let's Encrypt:现在个人玩家几乎都用它拿证书,支持自动签发和续期,验证方式有HTTP和DNS两种,其中DNS验证是拿通配符证书的必经之路。
  • Certbot:专门用来自动化处理Let's Encrypt证书的申请和续期,省得咱每隔三个月手动折腾一遍。
  • DuckDNS:一款口碑不错的免费动态DNS服务,适合没有静态公网IP的朋友,能把动态IP绑定到固定的域名上,方便得很。

一、普通域名证书的DNS验证

虽然Let's Encrypt支持HTTP验证,但如果用的是DuckDNS的域名,用DNS验证也挺简单:

  1. 打开终端运行Certbot,发起证书申请的时候选DNS验证模式。
  2. 跟着提示走,Certbot会给你一串验证字符串,你需要登录DuckDNS的管理页面,给你的域名加一条TXT记录,记录名是_acme-challenge.你的DuckDNS域名,记录值就是那串字符串。
  3. 等个几分钟让DNS记录同步生效,然后回到终端回车,Certbot就会完成验证,给你颁发普通域名的证书了。

二、通配符证书的DNS验证

要是想拿*.你的DuckDNS域名这种通配符证书,就必须用DNS挑战来验证,步骤其实和普通证书差不多,但有几个细节要注意:

  1. 运行Certbot的申请命令,比如:certbot certonly --manual --preferred-challenges dns -d *.你的DuckDNS域名 -d 你的DuckDNS域名,这条命令同时申请主域名和通配符域名的证书。
  2. 这时候Certbot会提示你在_acme-challenge.你的DuckDNS域名下添加指定的TXT记录——划重点:不管是验证主域名还是通配符域名,都是检查这个位置的TXT记录,不用分开加。
  3. 登录DuckDNS后台,找到你的域名,把要求的TXT记录值填进去保存。
  4. 等DNS记录同步(一般几分钟就行),回到终端回车,验证通过后就能拿到包含主域名和通配符的证书了。

三、设置自动续期,一劳永逸

拿到证书后可别忘了设置自动续期,不然三个月后证书过期就麻烦了:

  • 先运行certbot renew --dry-run测试一下续期流程能不能正常跑起来,如果没问题,后续Certbot会自动在证书到期前完成续期。
  • 要是你用的是手动DNS验证,可能得写个小脚本,调用DuckDNS的API自动更新TXT记录,这样续期的时候就不用手动登录后台改记录了,完全自动化。

备注:内容来源于stack exchange,提问作者lupoCani

火山引擎 最新活动