一、准备工作
在生成SSL证书前,需要准备有效域名和服务器环境。建议使用Linux系统并安装Nginx/Apache等Web服务器,同时确保防火墙开放80/443端口。通过SSH连接服务器后,安装必备依赖:
- 安装OpenSSL工具链(版本≥1.1.1)
- 配置DNS解析指向代理服务器IP
- 获取sudo权限用于执行安装命令
二、使用Certbot自动化工具
Certbot是Let’s Encrypt官方推荐的自动化证书管理工具,支持自动验证域名所有权并生成证书。执行以下命令完成安装与配置:
- 安装Certbot:
sudo apt install certbot python3-certbot-nginx
- 生成通配符证书:
sudo certbot certonly --manual --preferred-challenges=dns -d *.example.com
- 按提示添加DNS解析验证TXT记录
成功后会生成/etc/letsencrypt/live/
目录,包含证书文件fullchain.pem
和私钥privkey.pem
。
三、配置反向代理服务器
以Nginx为例,在代理配置中增加SSL模块参数:
server {
listen 443 ssl;
server_name proxy.example.com;
ssl_certificate /etc/letsencrypt/live/proxy.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/proxy.example.com/privkey.pem;
location / {
proxy_pass http://backend-server;
}
配置完成后执行nginx -t
测试语法,并重载服务使配置生效。
四、实现自动续期
Let’s Encrypt证书有效期为90天,通过cron任务设置自动续期:
- 打开cron配置:
sudo crontab -e
- 添加定时任务:
0 0 */60 * * certbot renew --quiet --post-hook "systemctl reload nginx"
该命令每60天检查证书有效期,并在续期后自动重载Nginx服务。
通过Certbot工具链与反向代理配置的深度整合,可实现域名代理SSL证书的全生命周期自动化管理。该方法兼顾安全性与运维效率,特别适用于需要管理多个代理域名的中大型项目。