在我的项目中,我已将Spring Security与CAS服务器身份验证集成在一起。现在我的项目是一个http应用程序,其中CAS服务器是一个Https应用程序。在Spring Security和CAS集成之后,我得到了以下异常:sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
为了解决这个错误,我用我的本地usr \ java \ jre \ lib \ security \ cacerts文件替换了CAS服务器usr \ java \ jre \ lib \ security \ cacerts文件。在此步骤之后,错误消失了。
现在我想将我的应用程序部署到其他服务器上。在这个新服务器中,还部署了一些可能使用不同CAS身份验证的其他应用程序。我不能直接用这个新的服务器cacerts文件替换我的CAS服务器cacerts文件,因为部署的其他应用程序可能会失败。对吗?任何人都可以建议我应该做什么,以便可以合并cacerts,或者应该做什么?我知道一个名为keytool的命令,但无法理解它如何用于合并cacerts文件。我不知道如何获取我的CAS服务器.cer文件,我知道这可以用于合并,请提示解决方案
答案 0 :(得分:2)
这里有一个误解。
cacerts
是Java的默认信任库,包含已知CA(Verisign等)的所有可信证书。因此,java默认情况下可以像浏览器一样信任这些证书。
当您要连接到由这些CA签名的服务器时,应使用此信任库 在所有其他情况下,您应该使用自己的自定义信任库,以便您可以信任特定的服务器。实际上这是常态。
所以你应该做的是加载代码 你自己的信任库 并将其提供给Java的JSSE以在握手期间用于身份验证