ssl新闻资讯

文档中心

Nginx鏈嶅姟鍣⊿SL璇佷功鏇存崲鍏ㄦ敾鐣ラ浂鍩虹涔熻兘杞绘澗鎼炲畾锛?txt

时间 : 2025-09-27 16:27:05浏览量 : 3

2Nginx鏈嶅姟鍣⊿SL璇佷功鏇存崲鍏ㄦ敾鐣ラ浂鍩虹涔熻兘杞绘澗鎼炲畾锛?txt

****

SSL证书是网站安全的“门锁”,过期或配置错误会导致浏览器警告,甚至数据泄露。作为运维人员,定期更换SSL证书是基本功。本文以Nginx为例,手把手教你从证书申请到配置生效的全流程,并附赠避坑指南!

一、为什么要换SSL证书?

1. 证书过期:免费证书(如Let's Encrypt)通常只有90天有效期。

*举例:去年某电商因忘记更新证书,导致用户访问时跳“不安全”提示,当天损失百万订单。*

2. 安全升级:旧证书可能使用弱加密算法(如SHA-1),需替换为更安全的SHA-256。

3. 域名变更:新增子域名(如从 `example.com` 扩展到 `shop.example.com`)需更新证书。

二、准备工作:4个关键文件别搞错

更换前确保你有以下文件(以腾讯云申请为例):

- 域名证书文件(`.crt` 或 `.pem`):类似“身份证”

- 私钥文件(`.key`):相当于“保险箱钥匙”,绝不能泄露!

- CA中间证书链(`chain.crt`):证明证书由合法机构签发

*小技巧*:用 `ls -l` 检查文件权限,私钥应设为600(仅所有者可读):

```bash

chmod 600 example.com.key

```

三、Nginx配置实战步骤

步骤1:上传新证书到服务器

推荐存放路径(方便管理):

/etc/nginx/ssl/example.com/

├── new_cert.crt

新证书

├── new_key.key

新私钥

└── chain.crt

中间链

步骤2:修改Nginx配置文件

找到你的站点配置文件(通常在 `/etc/nginx/sites-enabled/`),修改 `server` 块中的SSL部分:

```nginx

server {

listen 443 ssl;

server_name example.com;

↓↓↓ 关键配置 ↓↓↓

ssl_certificate /etc/nginx/ssl/example.com/new_cert.crt;

ssl_certificate_key /etc/nginx/ssl/example.com/new_key.key;

ssl_trusted_certificate /etc/nginx/ssl/example.com/chain.crt;

其他原有配置保持不变...

}

步骤3:测试并重载配置

先检查语法是否正确,避免重启失败导致服务中断:

sudo nginx -t

看到"ok"和"successful"才继续

sudo systemctl reload nginx

热重载不中断服务

四、验证是否生效的3种方法

1. 浏览器直接访问HTTPS网址:地址栏显示??且无警告。

2. 命令行工具检测:用OpenSSL检查有效期和签发者:

```bash

openssl x509 -in new_cert.crt -noout -dates

```

3. 在线工具扫描:[SSL Labs](https://www.ssllabs.com/)输入域名可查详细评分。

五、常见踩坑与解决方案

? 坑1:“私钥不匹配”报错

*现象*:Nginx报错 `SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch`

? *解决方法*:用OpenSSL比对MD5值是否一致:

openssl x509 -noout -modulus -in new_cert.crt | openssl md5

openssl rsa -noout -modulus -in new_key.key | openssl md5

两个结果必须相同!

? 坑2:“证书链不完整”

*现象*:某些旧设备(如Android手机)提示“不受信任的证书”。

? *解决方法*:合并中间链和主证书为一个文件:

cat new_cert.crt chain.crt > fullchain.crt

然后在Nginx中指向 `fullchain.crt`。

六、自动化进阶技巧

如果你用Let's Encrypt免费证书,推荐使用Certbot自动续期:

sudo certbot renew --dry-run

模拟测试续期

sudo certbot renew --force-renewal && systemctl reload nginx

搭配Cron定时任务彻底告别手动更新!

*

更换SSL证书看似简单,但一个空格错误都可能让网站瘫痪。建议先在测试环境演练,并收藏本文作为应急手册。遇到问题?欢迎在评论区留言交流!

TAG:nginx服务器更换ssl证书,nginx如何配置ssl证书,nginx sslv3,nginx替换ssl证书不生效,nginx更换证书不生效,nginx替换证书