let’s encrypt 申请免费的通配符证书

上篇文章说了如何使用 let’s encrypt申请单域名证书,后面也尝试了通配符证书,再次记录一下,后续使用可快速上手

Certbot 可以获取 Let’s Encrypt 的通配符证书(Wildcard Certificate) ,但需要使用 DNS-01 验证方式 (文件验证无法适用通配符)

匹配域名:

  • 匹配所有子域名: 例如 *.example.com 可以用于 blog.example.com api.example.com dev.example.com

  • 不匹配主域名: *.example.com 不包含 example.com ,如果需要主域名,必须单独添加( -d example.com -d *.example.com

前提条件:

  • 必须使用 DNS-01 验证 (通过添加 DNS TXT 记录验证域名所有权)

  • 需要 域名提供商支持 API 自动更新 DNS (如 Cloudflare、AWS Route53、Aliyun DNS 等),或者手动添加 TXT 记录

  • Certbot 版本 ≥ 0.22.0 (较新版本支持通配符)

本例子所用版本

  • Certbot: 5.0.5

  • Certbot – dns-aliyun: 2.0.0 (pip3 show certbot-dns-aliyun 命令查看)

手动配置DNS步骤:

手动添加DNS适合于域名和你要解析的云厂商不一样的情况。

1、获取通配符证书命令,如下:

#通配符不匹配主域名,因此ywabcd.cn要单独使用-d来申请证书certbot certonly --manual --preferred-challenges dns -d "ywabcd.cn" -d "*.ywabcd.cn"

会提示需要去域名控制台添加TXT的解析记录。

let’s encrypt 申请免费的通配符证书

登录域名控制台,添加记录。

let’s encrypt 申请免费的通配符证书

解析需要几分钟才能生效,此时先不要回车下一步,以免没检测到生效导致失败,此时通过命令先检测下解析是否成功,如果成功了在继续执行证书步骤,如下:

dig +short TXT _acme-challenge.ywdevops.cn @8.8.8.8

let’s encrypt 申请免费的通配符证书

已经生效,此时在Press Enter to Continue位置点击回车进行下一步,获取到证书。

let’s encrypt 申请免费的通配符证书

将证书配置到Nginx后,查看网站证书信息 , 已经是Let’s Encrypt。

let’s encrypt 申请免费的通配符证书

查看获取的证书中是否包含多个域名,可以使用如下命令:

openssl x509 -in fullchain1.pem -noout -text | grep -A1 "Subject Alternative Name"

let’s encrypt 申请免费的通配符证书

自动DNS解析步骤

使 用 Certbot 的 DNS 插件(推荐,自动更新 DNS) ,这里演示使用阿里云DNS插件,安装插件,如下:

pip3 install certbot certbot-dns-aliyun //安装certbot和插件certbot plugins //验证插件

let’s encrypt 申请免费的通配符证书

  • 登录阿里云账户,创建RAM用户

  • 创建 AccessKey ID AccessKey Secret ,保存好

  • 给 用户授予 AliyunDNSFullAccess 策略

let’s encrypt 申请免费的通配符证书

3、 在服务器上创建配置文件
/etc/letsencrypt/aliyun.ini,如下:

touch /etc/letsencrypt/aliyun.inichmod 600 aliyun.ini #权限控制在600

添加配置内容到aliyun.ini中,如下:

dns_aliyun_access_key = LTAI5tAoMeLxFa5boBcjWJsdns_aliyun_access_key_secret = MP9CGqB98zaHN0t0BOpW9G2cMhfBAw

4、 使用命令获取证书 , 如下:

certbot certonly  --authenticator dns-aliyun  --dns-aliyun-credentials /etc/letsencrypt/aliyun.ini  --dns-aliyun-propagation-seconds 60  -d "*.example.com"  -d example.com  --non-interactive  --agree-tos 

登录阿里云,可以看到已经自动添加了DNS解析。

let’s encrypt 申请免费的通配符证书

再等一会就可以看到终端提示证书签发成功。

let’s encrypt 申请免费的通配符证书 注: 要获取证书的域名要跟aliyun.ini中配置AccessKeyID和AccessKeySecret所对应的阿里云账号在一起才能使用自动DNS解析

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容