广州总部电话:020-85564311
广州总部电话:020-85564311
20年
互联网应用服务商
请输入搜索关键词
知识库 知识库

优网知识库

探索行业前沿,共享知识宝库

Nginx SSL 证书更换与 HTTPS 服务更新指南

发布日期:2025-07-26 09:04:47 浏览次数: 815 来源:物联网架构师之路
推荐语
轻松掌握Nginx SSL证书更换全流程,保障HTTPS服务安全更新。

核心内容:
1. 准备工作:获取新证书与备份旧配置
2. 替换证书:上传新证书并修改Nginx配置
3. 服务更新:检查配置语法并平滑重启Nginx
小优 网站建设顾问
专业来源于二十年的积累,用心让我们做到更好!

以下是Nginx SSL 证书更换与 HTTPS 服务更新详细步骤,适用于手动替换证书或结合 Let's Encrypt 自动续签的情况:

 

1. 准备工作

1.1 获取新证书

从证书颁发机构(CA)获取新证书文件(如 .crt 或 .pem 文件)和私钥文件(.key 文件)。

确保证书与域名匹配,并包含完整的证书链(如 fullchain.crt 和 private.key)。

1.2 备份旧证书

备份证书和私钥

Bash                  
sudo cp /etc/nginx/ssl/example.com.crt /etc/nginx/ssl/example.com.crt.bak                  
sudo cp /etc/nginx/ssl/example.com.key /etc/nginx/ssl/example.com.key.bak

备份 Nginx 配置文件(如 /etc/nginx/nginx.conf 或站点配置文件):

Bash                  
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

 

2. 替换证书

2.1 上传新证书

将新证书和私钥上传到服务器的安全目录(如 /etc/nginx/ssl/)。

示例:

Bash                  
sudo scp new_cert.crt new_private.key user@your_server:/etc/nginx/ssl/

2.2 修改 Nginx 配置

编辑 Nginx 配置文件(如 /etc/nginx/sites-available/default 或 /etc/nginx/conf.d/your_site.conf)。

更新证书路径(确保 ssl_certificate 和 ssl_certificate_key 指向新证书):

Nginx                  
server {                  
    listen 443 ssl;                  
    server_name your_domain.com;                  

    ssl_certificate /etc/nginx/ssl/new_cert.crt;  # 新证书路径                  
    ssl_certificate_key /etc/nginx/ssl/new_private.key;  # 新私钥路径                  

    # 其他 SSL 配置(可保留原样)                  
    ssl_protocols TLSv1.2 TLSv1.3;                  
    ssl_ciphers HIGH:!aNULL:!MD5;                  
    ssl_prefer_server_ciphers on;                  
}

2.3 检查配置文件语法

测试 Nginx 配置是否正确:

Bash                  
sudo nginx -t

如果提示 syntax is ok 且 test is successful,则配置无误。

 

3. 重启 Nginx 服务

平滑重启 Nginx(避免服务中断):

Bash                  
sudo systemctl reload nginx

如果失败,尝试完全重启:

Bash                  
sudo systemctl restart nginx

 

4. 验证新证书

4.1 浏览器验证

访问 https://your_domain.com,检查浏览器地址栏是否显示安全锁标志,且无证书错误。

4.2 命令行验证

使用 openssl 检查证书有效期:

Bash                  
openssl x509 -in /etc/nginx/ssl/new_cert.crt -text -noout | grep "Not After"

使用在线工具(如 SSL Labs)测试证书配置。

 

5. 自动续签(推荐,适用于 Let's Encrypt)

如果使用 Certbot(Let's Encrypt)管理证书:

5.1 获取并配置证书

Bash                  
sudo certbot --nginx

按提示选择域名并启用自动重定向(HTTP 到 HTTPS)。

5.2 测试自动续签

Bash                  
sudo certbot renew --dry-run

确保续签脚本无错误。

5.3 设置定时任务

编辑定时任务:

Bash                  
sudo crontab -e

添加以下任务(每月 1 日凌晨 1 点续签):

Bash                  
0 1 1 * * certbot renew --quiet

 

6. 注意事项

(1)权限设置

确保证书和私钥文件权限正确:

Bash                  
sudo chmod 600 /etc/nginx/ssl/*.key                  
sudo chmod 644 /etc/nginx/ssl/*.crt                  
sudo chown root:root /etc/nginx/ssl/*.key

(2)证书链完整性

如果证书文件缺少中间证书,需将 CA 提供的中间证书合并到主证书文件中:

Bash                  
cat new_cert.crt intermediate.crt > fullchain.crt

(3)回滚准备

若新证书导致问题,立即恢复备份的旧证书和配置,并重启 Nginx:

Bash                  
sudo cp /etc/nginx/ssl/example.com.crt.bak /etc/nginx/ssl/example.com.crt                  
sudo cp /etc/nginx/ssl/example.com.key.bak /etc/nginx/ssl/example.com.key                  
sudo systemctl reload nginx

 

7. 常见问题排查

证书未生效:检查 Nginx 配置中证书路径是否正确,或尝试强制刷新浏览器缓存。

权限错误:确保私钥文件权限为 600,且 Nginx 进程有权限读取证书文件。

配置冲突:运行 nginx -t 检查语法,或查看日志文件 /var/log/nginx/error.log

 

通过以上步骤,可以完成 Nginx 的 SSL 证书更换。

优网科技,优秀企业首选的互联网供应服务商

优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!

优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、微信小程序定制开发、移动端应用(手机站APP开发)、微信定制开发(微信官网、微信商城、企业微信)等一系列互联网应用服务。


我要投稿

姓名

文章链接

提交即表示你已阅读并同意《个人信息保护声明》

专属顾问 专属顾问
扫码咨询您的优网专属顾问!
专属顾问
马上咨询
联系专属顾问
联系专属顾问
联系专属顾问
扫一扫马上咨询
扫一扫马上咨询

扫一扫马上咨询

和我们在线交谈!