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

时间:2013-05-06 10:58:41

标签: java jks

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

    cause javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 
    PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException
    
  3. 我在过去的一个月里苦苦挣扎。请任何人做必要的。 原谅我语法错误。

1 个答案:

答案 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”。几乎没有人改变它。完成这些相对简单的步骤后,您将安全地进行通信,并确保您正在与正确的服务器通信,只有正确的服务器(只要它们不会丢失其私钥)。