阿里云 Let's Encrypt 自动化证书工具
再也不需要购买昂贵的收费证书!使用免费的 Let's Encrypt 证书,也可以实现省心免运维的证书管理。
uv run apply-cert- 支持通配符证书
*.example.com - 支持阿里云 DNS 自动验证
- 支持手动 DNS 验证
uv run renew-cert- 自动检测证书到期时间
- 支持定时任务自动续订
- 保留原有证书配置
uv run update-slb-cert- 自动更新 SLB/ALB 证书
- 支持 HTTPS 监听器
- 无缝切换新证书
uv run cron- 自动运行证书续订任务
- 可配置定时计划
- 后台持续运行
- 🚀 自动化证书管理: 完整的 Let's Encrypt 证书生命周期管理
- 🔐 通配符证书支持: 支持
*.example.com通配符证书 - ☁️ 阿里云深度集成: 原生支持阿里云 DNS、SLB、ALB
- ⏰ 定时自动续订: 可配置的证书自动续订计划
- 🐍 Python 原生: 基于 Python 和 uv 包管理器
- 📦 易于部署: 简单的命令行工具,支持脚本化部署
# 安装 uv (Python 包管理器)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 克隆项目
git clone https://github.com/argszero/certbot-aliyun.git
cd certbot-aliyun
# 创建虚拟环境并安装依赖
uv venv
source .venv/bin/activate # Linux/macOS
# Windows: .venv\Scripts\activate
uv pip install -e .# 复制环境变量模板
cp .env.example .env编辑 .env 文件,配置阿里云凭证和证书信息:
# 阿里云凭证
ALIBABA_CLOUD_ACCESS_KEY_ID=你的AccessKeyID
ALIBABA_CLOUD_ACCESS_KEY_SECRET=你的AccessKeySecret
ALIBABA_CLOUD_REGION_ID=cn-hangzhou
# 证书配置
CERT_DOMAINS=example.com,*.example.com
CERT_EMAIL=admin@example.com
CERT_STAGING=false # 测试时设为 true,生产环境设为 false
CERT_VALIDATION_METHOD=alidns # manual, dns-route53, alidns, standalone
# SLB/ALB 配置(可选)
SLB_INSTANCE_ID=alb-xxxxxx
SLB_LISTENER_ID=lsr-yyyyyy
SLB_LISTENER_PROTOCOL=https现在你可以按照上面的 3 步流程 来管理证书了!
基于 .env.example 创建 .env 文件:
# 阿里云凭证
ALIBABA_CLOUD_ACCESS_KEY_ID=你的AccessKeyID
ALIBABA_CLOUD_ACCESS_KEY_SECRET=你的AccessKeySecret
ALIBABA_CLOUD_REGION_ID=cn-hangzhou
# 证书配置
CERT_DOMAINS=example.com,*.example.com
CERT_EMAIL=admin@example.com
CERT_STAGING=false
CERT_VALIDATION_METHOD=alidns # manual, dns-route53, alidns, standalone
# SLB/ALB 配置(可选)
SLB_INSTANCE_ID=alb-xxxxxx
SLB_LISTENER_ID=lsr-yyyyyy
SLB_LISTENER_PROTOCOL=https| 方式 | 说明 | 通配符支持 | 自动化程度 |
|---|---|---|---|
alidns |
阿里云 DNS 自动验证 | ✅ 支持 | ✅ 全自动 |
manual |
手动 DNS 验证(显示 TXT 记录) | ✅ 支持 | ❌ 需手动操作 |
standalone |
HTTP 验证(80 端口) | ❌ 不支持 | ✅ 全自动 |
- 快速开始指南 - 5 分钟快速入门
# 克隆仓库
git clone https://github.com/argszero/certbot-aliyun.git
cd certbot-aliyun
# 安装 uv (如果尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 创建虚拟环境并安装依赖
uv venv
source .venv/bin/activate # Linux/macOS
# Windows: .venv\Scripts\activate
# 安装项目依赖
uv pip install -e .# 安装测试依赖
uv pip install -e .[dev]
# 运行测试
uv run pytest# 申请证书(开发测试)
uv run apply-cert
# 续订证书
uv run renew-cert
# 更新 SLB 证书
uv run update-slb-cert
# 运行定时任务
uv run cronauto_cert/- Python 核心代码,包含证书管理逻辑pyproject.toml- Python 项目配置和依赖定义uv.lock- Python 依赖锁文件,确保环境一致性
.env.example- 环境变量模板,复制为.env后配置.gitignore- Git 忽略文件,防止提交敏感数据
Dockerfile- Docker 镜像定义(多阶段构建)docker-entrypoint.sh- 容器入口点docker-compose.yml- Docker Compose 开发环境配置.dockerignore- Docker 构建忽略文件
README.md- 项目详细说明(本文档)QUICKSTART.md- 5分钟快速开始指南
欢迎贡献!
- Fork 项目仓库
- 创建功能分支
- 提交你的修改
- 添加测试用例
- 提交 Pull Request
本项目采用 MIT 许可证 - 详情请见 LICENSE 文件。
- Let's Encrypt - 提供免费的 SSL/TLS 证书
- Certbot - ACME 客户端
- 阿里云 - 云服务支持
为阿里云社区精心打造 ❤️
如果觉得这个项目有用,请在 GitHub 上给它一个 ⭐!