我有以下文件keystore.txt
:
-----BEGIN CERTIFICATE-----
MIIFkDCCA3ig2wIB4gIBPDANBgkqhkiG9w0BAQ0FADCBnzELMAkGA1UE5hMCZGUx
DDAKBaNVBAgT...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
IaIGLTCCBBWgAwIBAg9w0BAQsBAjABAjABAjABjFADCBnzELMAkGA1UEBhMCZGUx
DDAKINBgkqhkiGBgNVBAgTA...
-----END CERTIFICATE-----
这是一个中间证书,后面跟着一个叶子证书。你如何将其转换为JKS格式?
答案 0 :(得分:0)
通常,证书链是您现在拥有的,只有与私钥相关才有意义。 “JKS”是一种特殊的密钥库格式,其条目与Java KeyStore
javadocs描述的条目相匹配。请参阅KeyStore.PrivateKeyEntry
文档中KeyStore
的说明。您已经在JKS密钥库中拥有私钥。因此,典型的流程类似于以下内容:
keytool -genkeypair -keystore myks.jks -alias server1
keytool -certreq -keystore myks.jks -alias server1 -file server1.p10
server1.p10
包含PKCS#10证书请求。其中包含与密钥库中别名server1
中的私钥对应的公钥。现在,您将获取文件server1.p10
并将其提供给您的证书颁发机构(CA)。如果一切顺利,他们将返回一个包含正确签名的叶证书和0个或更多中间证书的文件。这可能是您所指的文件keystore.txt
。 (请注意,我所知道的所有信誉良好的SSL CA将始终包含至少1个中间证书以及您的叶证书。)
然后,您可以使用以下命令将这些证书导入密钥库,并指定与正确私钥对应的别名。
keytool -importcert -keystore myks.jks -alias server1
这样就完成了交易。密钥库现在包含可通过别名server1
访问的私钥和关联证书链。