ssl新闻资讯

文档中心

Nginx+Tomcat鏁村悎閮ㄧ讲SSL璇佷功澶辫触鐨?涓父瑙佸師鍥犲強瑙e喅鏂规硶

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

2Nginx+Tomcat鏁村悎閮ㄧ讲SSL璇佷功澶辫触鐨?涓父瑙佸師鍥犲強瑙e喅鏂规硶

作为网络安全从业人员,我经常遇到企业在Nginx+Tomcat架构下部署SSL证书时遇到的各种"坑"。今天我就用大白话,结合实际案例,给大家系统梳理SSL证书安装失败的常见原因和解决方案。

一、证书链不完整(最常见问题)

问题现象:浏览器显示"此网站的安全证书不受信任",点击小锁图标能看到"证书链不完整"的提示。

专业解释:SSL证书就像身份证,需要上级CA机构背书。完整的证书链应该包含:

1. 你的网站证书(终端实体证书)

2. 中间CA证书

3. 根CA证书

典型案例:某电商网站部署后,Chrome显示红色警告。检查发现Nginx配置中只包含了网站证书,缺少中间证书。

```nginx

错误配置示例(仅包含网站证书)

ssl_certificate /path/to/domain.crt;

正确配置应该是将网站证书和中间证书合并为一个文件

ssl_certificate /path/to/fullchain.crt;

```

解决方法

1. 从CA机构下载中间证书

2. 用文本编辑器按顺序合并:网站证书 + 中间证书

3. 保存为fullchain.crt文件

4. Nginx指向这个合并后的文件

二、私钥与证书不匹配

问题现象:Nginx启动时报错"SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch"

专业解释:这就像用A家的钥匙去开B家的锁 - SSL私钥和公钥必须是一对。

典型案例:运维人员不小心把测试环境的私钥用在了生产环境。

```bash

验证方法(在服务器执行):

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

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

两个MD5值必须相同

三、443端口被占用

问题现象:Nginx启动失败,报错"bind() to 0.0.0.0:443 failed (98: Address already in use)"

检查端口占用情况

sudo netstat -tulnp | grep :443

如果被其他进程占用,可以停止该进程或修改Nginx监听端口

四、Tomcat未正确配置SSL转发

当Nginx处理HTTPS后转发给Tomcat时,需要在Tomcat的server.xml中配置:

```xml

proxyPort="443"

scheme="https"

secure="true"/>

否则应用获取到的仍是http请求,导致混合内容警告。

五、防火墙拦截443端口

有一次客户死活无法通过HTTPS访问,排查两小时才发现是云服务器的安全组没放行443端口。记住要检查:

1. iptables/firewalld规则

2. AWS/Aliyun等云安全组规则

3. IDC硬件防火墙规则

六、使用了不安全的协议或加密套件

过时的配置会带来安全风险:

?危险配置示例(启用已淘汰的TLS1.0)

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

?推荐配置(仅启用TLS1.2+)

ssl_protocols TLSv1.2 TLSv1.3;

ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...';

可以使用SSL Labs测试工具检测:https://www.ssllabs.com/ssltest/

七、SAN信息不匹配

现代SSL证书通常包含Subject Alternative Name (SAN),如果访问的域名不在SAN列表中就会报错。

比如为*.example.com申请的泛域名证书不能用于a.test.com。

八、系统时间不正确

遇到过最奇葩的案例是服务器时间设置为2000年,导致浏览器认为"此网站的凭据已过期"。解决方法很简单:

CentOS同步时间

ntpdate pool.ntp.org

Ubuntu使用timedatectl

sudo timedatectl set-ntp on

一下排查流程:

1?? `nginx -t`测试配置文件语法

2?? `systemctl status nginx`查看服务状态

3?? `journalctl -xe`查看详细错误日志

4?? SSL检测工具验证安装结果

记住这些要点,下次遇到SSL安装问题时就能快速定位了。网络安全无小事,每一个小细节都关系到用户的数据安全和企业信誉。

TAG:nginx tomcat ssl证书安装失败,nginx ssl pem,nginx安装ssl模块,nginx的ssl证书