Ubuntu Nginx SSL证书更新(以Let’s Encrypt为例)
Let’s Encrypt证书有效期为90天,Certbot会自动配置定时任务处理续期,无需手动干预。若需验证自动续期是否正常,可执行以下命令模拟续期流程:
sudo certbot renew --dry-run
若输出显示“Congratulations, all renewals succeeded”则表示自动续期配置成功。
若需强制更新证书(如域名变更、证书丢失等),可通过以下步骤操作:
运行Certbot命令并指定域名,Certbot会自动验证域名所有权并生成新证书:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
命令执行后,Certbot会提示是否自动配置Nginx,选择“Yes”即可。
新证书会保存在/etc/letsencrypt/live/yourdomain.com/目录下,主要文件说明:
fullchain.pem:完整的证书链(包含中间证书和根证书)privkey.pem:私钥文件(需严格保密)若Certbot未自动更新Nginx配置,需手动修改对应站点的配置文件(通常位于/etc/nginx/sites-available/yourdomain.com),确保以下指令指向新证书路径:
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
# 其他SSL配置(如协议版本、加密套件)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
}
修改配置后,需先测试语法是否正确,再重载Nginx使更改生效:
sudo nginx -t # 测试配置语法
sudo systemctl reload nginx # 重载Nginx(不中断现有连接)
sudo cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem /etc/letsencrypt/live/yourdomain.com/fullchain.pem.bak
sudo cp /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-available/yourdomain.com.bak
/etc/cron.d/certbot),每周检查证书有效期并在到期前30天尝试续期。若需调整检查频率,可编辑该文件或通过crontab -e添加自定义任务(如每天检查):0 0 * * * /usr/bin/certbot renew --quiet && systemctl reload nginx
sudo ufw allow 'Nginx Full' # 允许HTTP和HTTPS流量
sudo ufw enable # 启用防火墙(若未启用)
通过以上步骤,可完成Ubuntu Nginx SSL证书的更新操作,确保网站始终保持有效的HTTPS加密连接。