如何使用证书访问授权服务。 并添加请定义java密钥库。 我是非常新的这些过程。 我在尝试与此相关时遇到错误
cause javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException
我在过去的一个月里苦苦挣扎。请任何人做必要的。 原谅我语法错误。
答案 0 :(得分:5)
首先,您需要从您尝试连接的服务器获取公共证书。这可以通过多种方式完成,例如联系服务器管理员并要求它,使用openssl下载它,或者,如果是HTTP服务器,使用任何浏览器连接到它,查看页面的安全信息,以及保存证书副本。 (Google应该能够准确地告诉您如何为您的特定浏览器做些什么。)
现在您已将证书保存在文件中,您需要将其添加到JVM的信任库。在JDK的$ JAVA_HOME / jre / lib / security /或JRE的$ JAVA_HOME / lib / security中,有一个名为cacerts的文件,它附带Java并包含着名的认证机构的公共证书。要导入新证书,请以有权写入cacerts的用户身份运行keytool:
keytool -import -file <the cert file> -alias <some meaningful name> -keystore <path to cacerts file>
很可能会要求您输入密码。 java附带的默认密码是“changeit”。几乎没有人改变它。完成这些相对简单的步骤后,您将安全地进行通信,并确保您正在与正确的服务器通信,只有正确的服务器(只要它们不会丢失其私钥)。