2025/10/17 oxxo 无标签

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(较新版本支持通配符)

 手动配置DNS步骤:

手动添加DNS适合于域名和你要解析的云厂商不一样的情况,比如我的域名是在京东云购买的,但是certbot只支持阿里云的DNS插件,此时是不能使用自动DNS解析的,只有你的域名在你连接的DNS插件对应的阿里云账号上的时候才可以使用自动解析

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


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

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

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

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

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

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

自动DNS解析步骤

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


python3 -m venv /data/pyproject/test        //创建虚拟环境,跟外面隔离开
source /data/pyproject/test/bin/activate   //激活
pip3 install certbot certbot-dns-aliyun    //安装certbot和插件
certbot plugins                            //验证插件

2.配置阿里云 AccessKey 凭证,如下:

  • 登录阿里云账户,创建RAM用户
  • 创建AccessKey ID 和 AccessKey Secret,保存好
  • 给用户授予AliyunDNSFullAccess策略

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


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

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


dns_aliyun_access_key = LTAI5tAoMeLxFa5boBcjWJs
dns_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 \
  -m admin@example.com

登录阿里云,可以看到已经自动添加了DNS解析
再等一会就可以看到终端提示证书签发成功
注: 要获取证书的域名要跟aliyun.ini中配置AccessKeyID和AccessKeySecret所对应的阿里云账号在一起才能使用自动DNS解析

oxxo

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章