我可以将由CA创build的SSL证书导入到我的Java密钥库中吗?

我试图将一个CA签名的证书导入到Java密钥库中。 我可以find的所有说明都告诉我,首先使用Java keytool创build一个密钥库和一个签名请求(CSR),然后让CA签名CSR,然后将签名证书导入到密钥库中。

那么,愚蠢的我没有阅读好手册,并让CA在网上为我创build证书,而不是上传自己的CSR。 现在我得到了:

  • CA的ca.pem根证书
  • CA的sub.class1.server.ca.pem中间证书
  • mydomain.crt为我的域签名的证书,由CA创build
  • 我的证书的mydomain.key私钥文件,由CA创build

我试图将证书导入到我的密钥库中,如下所示:

 keytool -import -trustcacerts -alias root -file ca.pem -keystore mykeystore.jks keytool -import -trustcacerts -alias intermediate -file sub.class1.server.ca.pem -keystore mykeystore.jks keytool -import -alias mydomain mydomain.crt -keystore mykeystore.jks 

所以密钥库的内容如下所示:

 intermediate, Jul 16, 2015, trustedCertEntry, Certificate fingerprint (SHA1): 0A:D3:... root, Jul 16, 2015, trustedCertEntry, Certificate fingerprint (SHA1): 3E:2B:... mydomain, Jul 16, 2015, trustedCertEntry, Certificate fingerprint (SHA1): 18:F2:... selfsigned, Feb 4, 2015, PrivateKeyEntry, Certificate fingerprint (SHA1): 2B:74:... 

不幸的是,使用“mydomain”别名时,我试图保护的服务(JIRA服务器)不可访问。 当我使用“selfsigned”别名(这是我之前从密钥存储库创build的自签名证书)与所有其他设置相同时,可以很好地达到服务(除了有关自签名证书的警告,课程); 所以我觉得问题是CA生成的证书。

我尝试连接mydomain.crt和mydomain.key文件,build议在此线程中没有成功: 导入PEM证书链和密钥到Java密钥库

有什么我可能做错了吗? 是否有可能将由第三方创build的证书导入到现有的Java密钥库中? 或者是否需要吊销该证书,并使用从我的密钥库中提取的自制CSR重新执行此过程?

我过去通过使用PKCS12密钥库来做到这一点:

 cat ca.pem sub.class1.server.ca.pem > chain.pem openssl pkcs12 -export -inkey mydomain.key -certfile chain.pem \ -out mydomain.p12 -in mydomain.pem -name mydomain 

之后,通过指定密钥库typesPKCS12直接使用它或通过keytool转换为JKS:

 keytool -importkeystore -srckeystore mydomain.p12 \ -srcstoretype PKCS12 -deststoretype JKS -destkeystore mydomain.jks