如何正确更换Nginx服务器的SSL证书
海外云服务器 40个地区可选 亚太云服务器 香港 日本 韩国
云虚拟主机 个人和企业网站的理想选择 俄罗斯电商外贸虚拟主机 赠送SSL证书
美国云虚拟主机 助力出海企业低成本上云 WAF网站防火墙 为您的业务网站保驾护航
要正确更换 Nginx 服务器的 SSL 证书,请先确保新证书和私钥已准备就绪,编辑 Nginx 配置文件(通常位于/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
),更新ssl_certificate
和ssl_certificate_key
指令为新证书路径,重启或重新加载 Nginx 服务以应用更改,验证配置文件语法无误后,使用nginx -t
命令确认一切正常,检查浏览器中 HTTPS 连接是否正常工作,并确保没有安全警告。
在更换 SSL 证书之前,请确保您已经准备好了新的 SSL 证书文件(通常是 cert.pem
和 key.pem
),以及可选的中间证书(如 chain.pem
或 ca-bundle.crt
),这些文件可以从您的证书颁发机构(CA)获取,还需确保 Nginx 已正确安装并配置,并且该服务正在正常运行。
如果您使用的是 Let's Encrypt 提供的免费 SSL 证书,可以通过 Certbot 工具自动续订和安装新证书,以下是使用 Certbot 安装新证书的步骤:
-
安装 Certbot
根据您的操作系统选择相应的安装方式,在基于 Debian 的系统上,可以使用以下命令进行安装:sudo apt-get update sudo apt-get install certbot python3-certbot-nginx
-
获取新证书
运行以下命令以请求新的证书,并确保您已经指定了正确的域名列表:sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
-
验证安装结果
Certbot 会自动处理 Nginx 配置文件并重启服务,您可以通过访问您的站点来验证是否成功安装了新的 SSL 证书。
手动更新 SSL 证书
如果不想使用 Certbot,或者您的环境不允许使用它,也可以手动更新证书,接下来我们将介绍手动方法。
备份现有配置
在执行任何更改之前,建议首先备份现有的 Nginx 配置文件,这可以帮助您在出现问题时快速恢复到之前的设置,假设您的 Nginx 配置文件位于 /etc/nginx/sites-available/yourdomain.conf
,您可以使用以下命令创建备份:
sudo cp /etc/nginx/sites-available/yourdomain.conf /etc/nginx/sites-available/yourdomain.conf.bak
更新证书文件路径
编辑您的 Nginx 配置文件,找到与您的网站相关的 server
块,通常情况下,这个块会包含类似如下的内容:
server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /path/to/old/cert.pem; ssl_certificate_key /path/to/old/key.pem; ssl_trusted_certificate /path/to/old/ca-bundle.crt; # 如果您有中间证书的话 }
将上述路径替换为您新下载的证书文件的实际位置。
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/yourdomain.com/chain.pem; # 如果您有中间证书的话
测试 Nginx 配置
在保存并关闭配置文件后,测试 Nginx 配置是否有效,运行以下命令来检查是否有语法错误:
sudo nginx -t
如果没有错误信息,则说明配置文件正确无误。
重新加载 Nginx
最后一步就是重新加载 Nginx,使更改生效,使用以下命令来完成此操作:
sudo systemctl reload nginx
或
sudo service nginx reload
您的 Nginx 应该已经开始使用新的 SSL 证书了,您可以使用在线工具(如 SSL Labs 的 SSL Test)来验证新证书是否已正确安装。
注意事项
- 确保新旧证书之间的过渡期足够长,以便所有客户端都能顺利切换到新证书。
- 如果您的网站托管多个子域,请确保为每个子域都更新了相应的证书。
- 在更换证书期间,可能会导致短暂的服务中断,因此最好选择在流量较低的时间段内进行操作。
- 如果您启用了 HTTP/2 协议,请注意某些浏览器可能要求使用特定格式的证书链。
- 定期检查证书的有效期,以避免过期导致的安全问题,Let's Encrypt 证书有效期为 90 天,建议使用自动化工具(如 Certbot)定期续订。