使用jks文件访问https服务的java过程

  1. 使用JKS文件调用远程Web服务的Java代码。
  2. 如何使用证书访问授权服务。 并添加请定义java密钥库。 我是非常新的这些过程。 我在尝试与此相关时遇到以下错误

    cause javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException 

我在最后一个月挣扎。 请任何人做必要的事情。 原谅我语法错误。

首先,您需要从您尝试连接的服务器获取公共证书。 这可以通过多种方式完成,例如联系服务器管理员并要求它,使用openssl下载它,或者,如果是HTTP服务器,使用任何浏览器连接到它,查看页面的安全信息,以及保存证书的副本。 (Google应该能够准确地告诉您如何为您的特定浏览器做些什么。)

现在您已将证书保存在文件中,您需要将其添加到JVM的信任库。 在JDK的$ JAVA_HOME / jre / lib / security /或JRE的$ JAVA_HOME / lib / security中,有一个名为cacerts的文件,它附带Java并包含着名的认证机构的公共证书。 要导入新证书,请以有权写入cacerts的用户身份运行keytool:

 keytool -import -file  -alias  -keystore  

它很可能会要求您输入密码。 java附带的默认密码是“changeit”。 几乎没有人改变它。 完成这些相对简单的步骤后,您将安全地进行通信,并确保您正在与正确的服务器和正确的服务器通信(只要它们不会丢失其私钥)。