Centos 服务器使用 Certbot 配置阿里云SSL证书一键申请
CentOS 服务器使用 Certbot 配置阿里云 SSL 证书一键申请指南
本教程将指导您在 CentOS 系统上使用 Certbot 配合阿里云 DNS 申请免费的 Let’s Encrypt 通配符 SSL 证书,并配置自动续期。整个过程简单易行,无需人工干预。
一、前期准备
1. 安装 Python 环境
确保系统已安装 Python 3 和 pip:
1 | sudo yum install -y python3 python3-pip |
2. 安装 Certbot 和阿里云插件
通过 pip 安装 Certbot 及阿里云 DNS 验证插件:
1 | pip install --upgrade pip |
二、配置阿里云 DNS 验证权限
1. 创建 RAM 用户
- 登录阿里云 RAM 控制台
- 创建一个新的 RAM 用户,并授予
AliyunDNSFullAccess
权限 - 为该用户创建 AccessKey,并记录 AccessKey ID 和 AccessKey Secret
2. 创建认证配置文件
创建目录和认证文件:
1 | # 创建配置目录 |
在文件中添加您的阿里云 AccessKey 信息:
1 | dns_aliyun_access_key = <你的AccessKey ID> |
设置安全的文件权限:
1 | sudo chmod 600 /opt/certbot_dns/credentials.ini |
三、申请通配符证书
执行以下命令申请证书(将 example.cn 替换为您的实际域名):
1 | sudo certbot certonly \ |
成功后会显示类似以下信息:
1 | Successfully received certificate. |
四、证书文件说明
申请成功后,证书文件保存在以下位置:
- 证书文件:
/etc/letsencrypt/live/example.cn/fullchain.pem
- 私钥文件:
/etc/letsencrypt/live/example.cn/privkey.pem
这些文件可直接在 Nginx 或 Apache 的 SSL 配置中引用。
五、配置证书自动续期
1. 创建证书续期后的自动重载脚本
创建一个脚本,使证书续期后自动重新加载 Web 服务器:
1 | sudo mkdir -p /etc/letsencrypt/renewal-hooks/deploy |
添加以下内容:
1 |
|
设置脚本执行权限:
1 | sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh |
2. 测试自动续期流程
使用以下命令测试续期流程(不会实际更新证书):
1 | sudo certbot renew --dry-run |
如果看到 “Congratulations, all simulated renewals succeeded” 信息,则表示测试成功。
3. 启用自动续期计划任务
启用并启动系统自带的 certbot 定时任务:
1 | sudo systemctl enable --now certbot-renew.timer |
检查定时器状态:
1 | sudo systemctl status certbot-renew.timer |
六、自动续期工作原理
Certbot 的自动续期机制具有以下特点:
- 检查频率:系统每天随机时间运行两次证书检查
- 续期条件:仅当证书剩余有效期少于 30 天时才执行续期
- DNS 验证:使用配置好的阿里云 API 自动完成验证,无需人工操作
- 续期后操作:成功续期后自动执行我们配置的 Nginx 重载脚本
您可以通过以下命令查看续期计划和日志:
1 | # 查看续期计划 |
七、参考资料
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xingcy!
评论