【发布时间】:2020-06-17 19:21:17
【问题描述】:
将 java 版本从 1.8.0_231 更新到 1.8.0_241 后,我收到与证书配置相关的错误。
在 Spring Boot 启动期间,我正在设置 keystore 和 keystorepass 并在 Spring 框架提供的 RestTemplate 的帮助下进行休息调用。
调用休息服务后,我得到 sun.security.validator.ValidatorException: PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException: 无法找到请求目标的有效证书路径;嵌套异常是 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX 路径错误。
相同的代码在 JDK 1.8.0_231 上运行良好。任何人都可以帮助我造成问题的原因。
我配置keystore和keystorepassowrd如下图
System.setProperty("javax.net.ssl.keyStore", environment.getProperty("javax.net.ssl.keyStore"));
String pswd = null;
try (BufferedReader br = new BufferedReader(
new InputStreamReader(new
FileInputStream(environment.getProperty("javax.net.ssl.keyStorePassword")), Charset.defaultCharset()))) {
pswd = br.readLine();
if (pswd != null) {
System.setProperty("javax.net.ssl.keyStorePassword", pswd);
}
}
【问题讨论】:
标签: java spring spring-boot ssl