Java运维故障记录
目录
警告
本文最后更新于 2020-07-19,文中内容可能已过时。
1. sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target;
问题: 原有一个跑了很久的java项目在运行的时候报了上述一个错误,协助开发分析后发现是一个https的问题,检查了调用的接口地址,发现该接口地址的证书已经变成了Let's Encrypt
的证书,多方查证后发现Let's Encrypt
证书太新,使用的java版本太旧而并未加入根证书导致。解决方案是,要么升级java版本,要么导入根证书到jdk信任当中去。
本次记录加入信任方式 :
- (异常)测试
|
|
- 解决
|
|
- (成功)测试
|
|
2. nginx
反向代理 Springboot
容器应用,浏览器访问时静态资源间接性502
- 第一种情况: cookie携带的header泰斗,请求头数据过大
|
|
- 第二种情况: 防火墙问题,重置就好了(有容器的服务器一定不要开防火墙,不然各种问题)
2. cn.hutool.core.io.IORuntimeException: SSLHandshakeException: Received fatal alert: unrecognized_name
- 问题: 开发的一个
java
程序,连接测试环境的api
正常,但切换到正式的api
就报错 - 分析:可能,正式环境
https
仅支持tls1.2
, 我们使用的JDK
可能不支持 - 解决: 升级
JDK 8u111
到JDK 8u322
,就可以了(实际环境, 基础容器java:8u111
切换到openjdk:8u322
)