Let‘s Encrypt配置泛域名证书

0x1 理论基础

  1. 以DNS的方式向Let's Encrypt申请校验码;
  2. 在域名解析中增加TXT记录,用于校验;
  3. 校验通过后生成证书;
  4. 自动renew问题的应对方法;

0x2 详细操作 (如果嫌麻烦请看0x3)

1. 申请校验码

certbot certonly -d *.domain.net --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory

这个过程第一步会询问你是否同意记录你的IP

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:

Y, 进入下一步, 出现认证的校验码

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

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Before continuing, verify the record is deployed.

在这里需要等待,不要按下回车键,复制那一长串校验码,进入到你域名解析的页面

2. 添加解析记录

添加记录

主机记录为_acme-challenge

记录类型为TXT

记录值为xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

如图

image-20191010215221160

保存之后要先通过测试,看DNS的解析是否已经生效

3. 查看解析记录是否生效

Linux中可用

watch -d -n 2 dig -t txt _acme-challenge.domain.net @223.5.5.5

macOS好像没有watch, 手动隔几秒执行一下好了。腾讯云的一般1分钟内就会解析生效;

dig -t txt _acme-challenge.domain.net @223.5.5.5

出现如下结果

Every 2.0s: dig -t txt _acme-challenge.domain.net @223.5.5.5                                       htpc: Thu Oct 10 22:06:46 2019


; <<>> DiG 9.11.3-1ubuntu1.9-Ubuntu <<>> -t txt _acme-challenge.domain.net @223.5.5.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58041
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1452
;; QUESTION SECTION:
;_acme-challenge.domain.net.   IN      TXT

# 重点在这里,出现answer section显示刚刚添加的记录值就是已经正常了。
;; ANSWER SECTION:
_acme-challenge.domain.net. 564 IN     TXT     "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

;; Query time: 287 msec
;; SERVER: 223.5.5.5#53(223.5.5.5)
;; WHEN: Thu Oct 10 22:06:46 CST 2019
;; MSG SIZE  rcvd: 108

4. 继续执行申请证书

回到第一步中等待的终端,按下回车后,等待校验通过就会生成证书;如果出错可能是解析没成功就按了回车。

0x3 使用脚本申请证书和自动renew

我是通过申请证书之后发现renew并不正常,找解决方法的时候才发现这个脚本。

脚本地址:https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au​

这个脚本的说明已经很消息了,我就不复制过来了;

如果你打算使用这个脚本做renew,而对

Are you OK with your IP being logged?

这个询问有疑问,其实这个询问只会在申请证书的时候才会有,renew的时候是不会出现的。

所以这个脚本在自动renew的时候不会因为这个问题而卡住。

comments powered by Disqus