如何导入在Java信任存储JKS证书(How to import a jks certificate

2019-07-30 15:51发布

如何导入一个.jks文件到Java安全性的信任? 所有的教程中,我看到的是使用“.CRT”文件。 但是,我只有“.jks”的文件,这也是我产生使用keytool命令密钥库。

目前,我下面这个教程 。

我能够产生一个Java密钥和密钥对,并生成用于一个现有的Java密钥库,这是基于该教程证书签名请求(CSR)。 但我不能导入根或中间CA证书到现有的Java密钥库,并导入签名的证书主要以现有的Java密钥库,因为它正在寻找一个“.cert”文件。

我失去了对本教程列出的步骤东西吗? 我怎么能相信,如果我有唯一的文件是“.jks”文件中的证书? 什么是使用“.csr文件”的文件?

请注意,我使用的是Windows。

Answer 1:

".jks" 信任,或者至少,如果你把它分配给JSSE是应该的。 你应该从你的CA到该文件中添加证书。 然后,该软件将通过证书遍历查找证书链。 私钥应保持在(密码保护) ".jks"文件。

换句话说,你应该导入证书的".jks"不出口证书出来。 您可能需要单独下载特定供应商的证书,如果他们不能在你的证书请求的响应包括在内。 您可以proabably从你喜欢的浏览器导出为好。 通常,这些被存储在X5.09 DER格式(这应该是与Java兼容keytool )。

步骤(一般):

  1. 生成一个密钥对及证书请求,存储到新的或现有的密钥存储区( .jks
  2. 将证书请求签名,获得链开始与您申请的证书
  3. 导入证书链与私钥密钥存储
  4. 产生新的或利用现有的密钥存储,需要做验证的一方(至少一个或多个客户使用时SSL),并导入证书链
  5. 信任证书链中的certicificate在上述密钥存储,可能是最顶部的证书(“根”证书)。
  6. 使用密钥存储与使用后者密钥存储私钥和多个客户端的配置和测试方,例如服务器。


Answer 2:

#Use Keytool command to generate a self-signed certificate and install the certificate in Client Machine JDK Security Key store path.

# generate a certificate using JKS format keystore
keytool -genkey -alias selfrest -keyalg RSA -keypass pass123 -storetype JKS -keystore selfsigned.jks -storepass pass123 -validity 360 -keysize 2048

# To check the content of the keystore, we can use keytool again:
keytool -list -v -keystore selfsigned.jks

#Export Self signed certificate into .cer file
keytool -exportcert -alias selfrest -keystore selfsigned.jks -file selfsigned.cer

# (Run As Administrator- to open CMD.exe)
# Install self-signed certificate into Java JDK CA Certificate key store path
# to avoid giving certificate path in the client program.
keytool -import -alias selfrest -keystore "C:\Program Files\Java\jdk1.8.0_181\jre\lib\security\cacerts" -file selfsigned.cer

# List certificates stored in JDK Key store which you have just now imported into JDK Security path.
keytool -list -keystore "%JAVA_HOME%\jre\lib\security\cacerts


文章来源: How to import a jks certificate in java trust store