钢蛋
发布于 2024-08-30 / 156 阅读
1
0

使用Certbot申请Let's Encrypt免费通配符证书

必要条件

  • 一个域名,能对该域名进行解析配置(以*.test.com为例)

  • 一个linux环境,可访问外网(以ubuntu 22.04为例)

操作步骤

1.安装Certbot

# 更新apt库
sudo apt update
# 安装certbot
sudo apt install certbot

2.发起申请

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

这里--manual表示手动验证域名,待会要给域名做一个txt类型解析记录,以验证你是这个域名的拥有者。

然后-d的值如果只写*.test.com,那么最后得到的证书可以覆盖任意xxx.test.com域名,比如www.test.com | a.test.com | hello.test.com等,但却覆盖不到test.com本身这个无前缀域名,所以这里-d要写两个。

后面--server是Let's Encrypt官方接口地址列表。

执行以上命令,按提示进行操作,直到出现如下提示信息。

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name:

_acme-challenge.test.com.

with the following value:

t16A5zqMYw9TWEHOgMe_TYYdgXSieLNMQ51U5iC6m2M
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

其中_acme-challenge.test.com.t16A5zqMYw9TWEHOgMe_TYYdgXSieLNMQ51U5iC6m2M后面需要用到。

3.域名解析添加TXT记录

20240830104041.png

这一步需要进入域名管理平台,看你的域名是在哪个平台申请的,是阿里云还是腾讯云,还是其他什么平台。

给域名解析添加一条TXT记录,主机记录为_acme-challenge,记录类型为TXT,记录值为t16A5zqMYw9TWEHOgMe_TYYdgXSieLNMQ51U5iC6m2M

添加完记录之后,会有一段生效时间,略等一两分钟,再回到刚才Press Enter to Continue的地方,按回车继续。

如果不放心,也可以通过Google工具箱验证解析有没有生效,生效后再继续。

Google工具箱

https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.test.com.

4.得到证书文件

按回车之后,如果不出意外,会看到如下提示信息。

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/test.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/test.com/privkey.pem
This certificate expires on 2024-11-29.
These files will be updated when the certificate renews.

恭喜你成功获得证书。

其中fullchain.pem是证书文件,privkey.pem是私钥文件,根据需要进行使用即可。

另外,此方法获得的证书到期后不会自动更新,可以在到期前手动重复执行以上过程,即可更新证书。


评论