我有一个web服务,在我们使用Java 7版本75时,它一直运行得很好。我们最近更新到了Java 8,现在我们在web服务上得到了这个错误: PKIX路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法找到被请求目标的有效认证路径。
这是一个完整的转储:
Charset [empty string]
ErrorDetail I/O Exception: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Filecontent Connection Failure
Header [empty string]
Mimetype Unable to determine MIME type of file.
Responseheader ws dump - struct [empty]
Statuscode Connection Failure. Status code unavailable.
Text YES我们已经更新了证书,并且证书已经在正确的密钥存储中重新导入,并使用keytool -list验证它在那里,并重新启动,但是仍然会得到身份验证错误。
我认为这通常是通过重新安装证书来解决的,但这并不有效。许多修复此错误的建议建议在CF管理中安装Certman。我们安装了它并导入了证书,但是仍然存在相同的错误。我们的解决方法是回滚到Java 7版本75,这样这个web服务就可以工作了,但是我们需要尽快更新到最新版本的Java,这样我们的图表就可以再次工作了,显然是出于安全原因。有什么建议吗?
统计数据:
Java 8 v60,ColdFusion 10修补程序17,Windows 8
*UPDATE*在阅读了Sean下面的答案后,我和我们的网络管理员谈过了,他们已经将tools.jar文件复制到lib文件夹中了。他们删除了存根文件夹并重新启动了CF服务器,但是我们仍然得到了相同的错误。我拜访了他们,他们向我展示了证书确实在keystore中。
如这里所述:https://helpx.adobe.com/coldfusion/kb/coldfusion-mx-troubleshooting-scheduled-tasks.html,我们在运行web服务时向jvim.config添加了一些调试。调试指出,与其中一个证书的握手无效。搞什么鬼!
我问我们是否可以在CF管理中看到证书管理器中的证书。它毕竟没有安装。因此NA在CF管理中安装了CertMan添加。在使用CertMan导入证书并重新启动CF服务器之后,web服务就开始工作了。
我认为,执行Sean下面的建议,并确保安装了CertMan,以便我们能够导入证书,才是为我们修复它的原因。
发布于 2015-09-19 16:03:47
您可能需要删除存根。这些都在[cfroot]/cfusion/stubs里。只需停止CF,删除该目录中的所有文件,然后再次启动CF。
此外,您还希望将tools.jar文件从JDK安装复制到[cfroot]/cfusion/lib/tools.jar的lib文件夹中。首先备份现有的tools.jar文件,然后从[jdk root]/lib/tools.jar复制。
参考资料:http://blogs.coldfusion.com/post.cfm/coldfusion-10-and-11-support-with-java-8
https://stackoverflow.com/questions/32661879
复制相似问题