我们正在 Amazon EC2 下运行一个应用程序(使用 Grails 开发),作为集成过程的一部分,我们假设打开与不同应用程序的 SSL 通信。每当我们尝试打开连接时,应用程序都会失败并显示以下错误消息:
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我假设我们在 cacert 中有 o 导入证书,但在这种情况下,由于我们无权访问已安装的 JVM,我认为我们无法做到这一点。有没有其他方法可以实现预期的行为预先感谢
值得一提的是,应用程序在本地运行良好,无需修改 cacert。这真的让我很困惑。我错过了什么! 此外,我们正在集成的第 3 方是由 verisign 签署的。
最佳答案
我在升级 IBM WebSphere 版本时经历了类似的事情,突然需要将证书导入到应用程序服务器受信任的存储区。据我所知,SSL 是 java 和 jvm 本身的第三方(在我的情况下是 ibm 自己的,在大多数其他情况下是 openssh)。因此,您实际上不需要访问 JVM 本身,而是访问 JVM 之上的中间件。我没有直接使用 Grail 的经验,但如果它运行在像 JBoss 这样的应用服务器上,那么也许可以通过管理界面将证书添加到它的可信存储中,就像我以前那样。祝你好运。
关于java - 为 ssl 通信导入证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7797857/