concatinating cert和密钥文件,以便它可以包含在java cacert文件中

时间:2015-07-01 10:06:51

标签: java ssl curl

我们已向客户提供了我们提供给他们的CSR证书。

基本上我已经提供了abc.pem和abc.cert文件。

abc.key是我们用来生成CSR的那个。

openssl req -out abc.csr -new -newkey rsa:2048 -nodes -keyout abc.key

跟随卷曲我能够打电话给客户。

C:\Sanjay\Work\17MM\Curl\curl-7.43.0-win32\bin>curl --cert "abc.cert" --key abc.key -X GET -H Accept:application/json -H Content-Type:applica tion/json -v "https://client.com"

我的问题: 我们希望将密钥文件和证书文件组合成一个,以便我们可以将其包含在cacert C:\Program Files\Java\jdk1.7.0_51\jre\lib\security中,这样当我们通过camel或apache http客户端发出请求时,它会从cacert中选择证书。

请建议!

1 个答案:

答案 0 :(得分:1)

cacerts文件是默认truststore。它是文件格式的密钥库,但它用作信任库(用于验证远程方的身份),而不是密钥库(用于向远程方证明您的身份)。

您不应将您的私钥和最终实体证书(EEC)放在cacerts中:

  • 将密钥库和信任库分开是个好习惯(因为信任库可以公开)。
  • Java中没有默认密钥库。 cacerts默认情况下仅用作信任库。

从您拥有的文件中,最简单的选择是构建PKCS#12(.p12)文件,并将其与PKCS12密钥库类型一起使用。然后,您可以使用javax.net.ssl.keyStore系统属性指向它,并使用javax.net.ssl.keyStoreType=PKCS12作为类型,并设置javax.net.ssl.keyStorePassword,除非您的客户端库也有自己的加载密钥库的方式。 / p>