温馨提示×

Ubuntu如何更新Nginx SSL证书

小樊
59
2025-11-03 01:48:11
栏目: 云计算

Ubuntu更新Nginx SSL证书步骤(以Let’s Encrypt为例)

更新Nginx SSL证书的核心是通过Certbot工具完成证书续期,并确保Nginx加载新证书。以下是详细操作流程:

1. 确保Certbot及Nginx插件已安装

Certbot是管理Let’s Encrypt证书的自动化工具,Nginx插件可自动修改Nginx配置。若未安装,执行以下命令安装:

sudo apt update
sudo apt install certbot python3-certbot-nginx

2. 手动触发证书续期

使用Certbot的renew命令更新证书,--dry-run参数用于模拟续期过程(无实际修改,用于测试):

sudo certbot renew --dry-run

若输出Congratulations, all renewals succeeded,说明续期成功。若需实际更新,去掉--dry-run参数:

sudo certbot renew

3. 自动续期配置(关键:避免手动操作)

Certbot默认会在安装时创建定时任务(通常位于/etc/cron.d/certbot/etc/systemd/system/certbot.timer),定期检查证书有效期(默认每60天续期一次)。无需额外配置,但可通过以下命令验证定时任务是否存在:

systemctl list-timers | grep certbot

若未找到定时任务,可手动添加cron任务(每天凌晨2点检查):

sudo crontab -e

添加以下内容:

0 2 * * * /usr/bin/certbot renew --quiet

4. 验证Nginx配置并重载

证书续期后,Certbot通常会自动修改Nginx配置文件(位于/etc/nginx/sites-available//etc/nginx/conf.d/),但建议手动检查以下关键路径是否正确:

  • SSL证书文件:ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
  • SSL私钥文件:ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

确认配置无误后,测试Nginx语法并重载服务:

sudo nginx -t  # 测试配置语法
sudo systemctl reload nginx  # 重载Nginx使更改生效

注意事项

  • 证书存储路径:Let’s Encrypt证书默认存储在/etc/letsencrypt/live/yourdomain.com/目录下,其中fullchain.pem是完整的证书链(包含服务器证书和中间证书),privkey.pem是私钥。
  • 强制HTTPS跳转:若Nginx配置中未包含HTTP到HTTPS的强制跳转,可添加以下server块(通常位于/etc/nginx/sites-available/yourdomain.com):
    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
        return 301 https://$host$request_uri;
    }
    
    修改后需再次测试并重载Nginx。

通过以上步骤,即可完成Ubuntu环境下Nginx SSL证书的更新,并确保证书长期有效。

0