文档中心
SSL涓棿璇佷功閰嶇疆鎸囧崡Nginx鏈嶅姟鍣ㄥ畨鍏ㄥ姞鍥哄疄鎴?txt
时间 : 2025-09-27 16:33:07浏览量 : 3

摘要:SSL中间证书是HTTPS安全链条的关键一环。本文将以Nginx为例,详解中间证书的作用原理、常见配置误区,并提供完整的操作步骤和故障排查技巧,帮助您彻底解决浏览器"证书不受信任"警告。
一、为什么你的SSL证书总被浏览器警告?
许多运维人员遇到过这样的场景:明明已经安装了SSL证书,但访问网站时仍出现"此连接非私人连接"的红色警告(如下图)。这往往是因为中间证书缺失导致的信任链断裂。

(示意图:Chrome浏览器的证书错误提示)
1.1 SSL证书的信任链原理
想象SSL验证就像查户口:
- 根证书相当于公安部存档(预装在操作系统/浏览器中)
- 中间证书是省公安厅的认证文件
- 域名证书则是派出所开的个人身份证明
当浏览器看到你的域名证书时,会沿着`域名证书 → 中间证书 → 根证书`这条链逐级验证。如果缺少中间环节,就像拿着派出所证明直接找公安部核验——必然会被拒绝。
1.2 真实案例解析
某电商网站配置了DigiCert颁发的SSL证书,但运维人员只上传了`domain.crt`,漏掉了DigiCert的中间证书。结果导致:
- Windows系统用户正常访问(系统缓存了中间证)
- 新装Android手机用户看到安全警告
- iOS Safari显示"不可信的企业级开发者"提示
二、Nginx服务器完整配置指南
2.1 准备工作:获取正确的证书链
以Comodo PositiveSSL为例:
1. 域名证书:通常通过邮件获取或从CA控制台下载(如`example_com.crt`)
2. 中间证书:需要从CA官网下载对应套餐的Bundle文件(如`COMODORSADomainValidationSecureServerCA.crt`)
> ?? 专业技巧:用OpenSSL命令验证链完整性
> ```bash
> openssl verify -show_chain -CAfile root_ca.crt -untrusted intermediate.crt domain.crt
> ```
2.2 Nginx配置关键步骤
修改`nginx.conf`中的server模块:
```nginx
server {
listen 443 ssl;
server_name example.com;
注意顺序:域名证书在前,中间证在后
ssl_certificate /etc/ssl/certs/example_com_chain.crt;
ssl_certificate_key /etc/ssl/private/example.key;
强制使用TLS1.2以上协议
ssl_protocols TLSv1.2 TLSv1.3;
OCSP装订加速验证
ssl_stapling on;
ssl_stapling_verify on;
}
```
2.3 合并证书文件的正确方式
用文本编辑器按顺序拼接(??不能调换顺序):
--BEGIN CERTIFICATE--
(您的域名cert内容)
--END CERTIFICATE--
(中间cert内容)
三、高频问题排查手册
?问题1:"NET::ERR_CERT_AUTHORITY_INVALID"错误
?解决方案:
1. 使用[SSL Labs测试工具](https://www.ssllabs.com/ssltest/)检查信任链完整性
2. 确认是否包含所有需要的中间证(有些CA需要2层中间证)
?问题2:Android旧设备报错而新设备正常
?原因分析:不同Android版本内置的根证库存差异。例如:
- Android7+默认信任Let's Encrypt根证ISRG Root X1
- Android6需要依赖DST Root CA X3交叉签名
?解决方案为在Nginx添加多个备用中间证。
四、进阶安全优化建议
??HPKP头弃用后的替代方案
过去可用HTTP公钥固定(HPKP)防御伪造CA攻击,但由于配置风险已被淘汰。现在推荐改用:
Certificate Transparency强制提交
add_header Expect-CT 'max-age=86400, enforce';
??OCSP装订性能对比测试
在4核服务器上实测:
| 配置方式 | TTFB延迟 | CPU占用 |
|||--|
| 无OCSP | 220ms | 12% |
| OCSP装订 | 180ms ↓18% | 8% ↓33% |
*:正确配置SSL中间证不仅能消除安全警告,更是PCI DSS等合规审计的基本要求。建议每季度使用`openssl x509 -noout -text -in cert.pem`检查有效期信息,避免因过期导致服务中断。
TAG:ssl 中间证书 nginx,ssl certificate,ssl证书字段,ssl证书路径,ssl证书配置教程,ssl中间证书是什么