使用 Certbot 在腾讯云生成 Let’s Encrypt 通配符证书完整教程

本文详细记录了在腾讯云环境下,通过 Certbot 获取和续期 Let's Encrypt 通配符证书的完整流程,包括 DNS API 配置、通配符证书申请、常见错误及解决方案。


1️⃣ 安装 Certbot

在 Ubuntu 系统中,推荐使用官方 PPA:

bash 复制代码
sudo apt update
sudo apt install certbot python3-certbot-dns-tencentcloud -y
  • certbot:核心工具
  • python3-certbot-dns-tencentcloud:用于通过腾讯云 DNS API 获取通配符证书

确认安装成功:

bash 复制代码
certbot --version

2️⃣ 配置腾讯云 DNS API 凭证

  1. 在腾讯云控制台创建 API 密钥

  2. 在服务器上创建凭证文件:

bash 复制代码
mkdir -p /root/.secrets/certbot
vim /root/.secrets/certbot/tencentcloud.ini

内容示例:

ini 复制代码
# 腾讯云 API 凭证
dns_tencentcloud_secret_id = YOUR_SECRET_ID
dns_tencentcloud_secret_key = YOUR_SECRET_KEY

修改权限,防止其他用户读取:

bash 复制代码
chmod 600 /root/.secrets/certbot/tencentcloud.ini

3️⃣ 申请通配符证书

使用 TencentCloud DNS 插件申请证书:

bash 复制代码
certbot certonly \
  --dns-tencentcloud-credentials /root/.secrets/certbot/tencentcloud.ini \
  --dns-tencentcloud-propagation-seconds 60 \
  -d xunhuawenyou.cn \
  -d "*.xunhuawenyou.cn"

操作说明:

  • certonly:只获取证书,不自动配置 Nginx
  • --dns-tencentcloud-credentials:API 凭证文件路径
  • --dns-tencentcloud-propagation-seconds:DNS 记录生效等待时间
  • -d:指定域名,可包含通配符

⚠️ 常见交互

  1. 如果已有 RSA 证书,会提示是否升级为 ECDSA:

    Update key type/(K)eep existing key type: U

选择 U

  1. 如果已有证书部分域名相同,会提示是否扩展证书:

    Do you want to expand and replace this existing certificate? (E)xpand/(C)ancel: E

选择 E 扩展。


4️⃣ 常见问题及解决方案

4.1 DNS API 授权失败

报错示例:

复制代码
Error communicating with the DNSPOD API: http error status: 401

原因:

  • API 密钥错误
  • 使用了错误的 DNS 产品(腾讯云 DNS vs DNSPod)

解决方法:

  • 确认凭证文件内容正确
  • 确认域名在腾讯云 DNS 上托管
  • 文件权限为 600

4.2 Nginx 配置导致续期失败

报错示例:

复制代码
nginx: [emerg] open() "/var/log/nginx/xunhuawenyou.cn/access.log" failed (2: No such file or directory)

解决方法:

  • 确认 Nginx 配置文件正确
  • 确保日志路径存在或切换 DNS 验证方式

5️⃣ 检查证书与文件路径

证书生成成功后路径:

复制代码
证书文件:/etc/letsencrypt/live/xunhuawenyou.cn/fullchain.pem
私钥文件:/etc/letsencrypt/live/xunhuawenyou.cn/privkey.pem
证书有效期:至 2026-04-30

注意:使用通配符证书必须 DNS 验证。


6️⃣ 自动续期

Certbot 默认安装后会创建 systemd timer 自动续期。

检查定时任务:

bash 复制代码
systemctl list-timers | grep certbot

手动测试续期:

bash 复制代码
sudo certbot renew --dry-run

输出示例:

复制代码
Simulating renewal of an existing certificate for xunhuawenyou.cn and *.xunhuawenyou.cn
Congratulations, all simulated renewals succeeded

⚠️ 注意事项:

  • 如果不再使用的域名可以删除对应的 renewal 配置:
bash 复制代码
sudo rm /etc/letsencrypt/renewal/huaxianguan.com.conf
  • 确保 DNS API 密钥有效,续期才会成功

7️⃣ 总结

  • 在腾讯云使用 Certbot 获取通配符证书必须使用 DNS API 插件
  • 生成证书前需创建凭证文件,并设置 600 权限
  • 成功申请后,系统会自动创建定时任务续期
  • 定期用 --dry-run 检查续期情况
  • 不再使用的域名可以删除对应的 renewal 文件,避免续期错误
相关推荐
巧妹儿3 小时前
AI Agent 实战:MySQL 监控指标查询 Skill|华为云 + 腾讯云双兼容可直接复用
python·mysql·ai·大模型·华为云·腾讯云
腾讯云大数据1 天前
腾讯云ES AI搜索最佳实践:基于ES与Dify的企业级RAG应用方案
大数据·人工智能·elasticsearch·云计算·腾讯云
七夜zippoe3 天前
腾讯云轻量服务器部署OpenClaw实战:打造智能日程管理助手
服务器·云计算·腾讯云·openclaw·腾讯云openclaw玩虾大赛
前进的李工3 天前
SSH隧道实现Dify与Ollama跨服务器通信
开发语言·大模型·github·腾讯云·autodl·dify
G佳伟3 天前
阿里云,腾讯云 Docker Hub国内云服务器无法访问解决方案
阿里云·docker·腾讯云
unity工具人4 天前
Agent好用吗(OpenClaw、腾讯云龙虾、WorkBuddy、GClaw、Molili)
ai·云计算·腾讯云·agent·龙虾
同聘云5 天前
阿里云国际站云服务器价格持续走低会取代VPS主机吗?
服务器·阿里云·腾讯云
翼龙云_cloud5 天前
腾讯云代理商:腾讯云 OpenClaw 一键更新指南
人工智能·云计算·腾讯云·openclaw
咕噜签名-铁蛋5 天前
腾讯云TCR企业版实例创建全指南:从前提条件到控制台/API操作步骤
云计算·腾讯云
gaize12136 天前
腾讯云 CVM 高性价比款
云计算·腾讯云