我如何导入.pem文件?

时间:2013-02-26 18:53:02

标签: keytool

我在

中报告了确切的问题

Jarsigner: certificate chain not found for

我的起点是.pem文件。我的感觉是,它确实也有私钥。我使用以下命令将其导入密钥库:

keytool -importcert -alias myalias -file myfile.pem

对于“信任此证书?[否]”,如果我选择“否”,则导入失败。所以,我选择了“是”。导入确实成功了。我的

keytool -list

生成的输出类似于Jarsigner中列出的输出:找不到证书链。

我的感觉是我确实拥有正确的证书位而不能正确导入。换句话说,我怀疑正在创建“可信证书条目”而不是“密钥条目”,但不知道如何强制keytool创建“密钥条目”。

我该如何解决这个问题?

其他信息:

经过进一步的工作,我倾向于完全相反的结论而不是上面的结论。我现在认为我的pem文件有问题。我查看了一个带有过期密钥的先前密钥库条目。它清楚地说明了PrivateKeyEntry,而我的导入状态为trustedCertEntry。

1 个答案:

答案 0 :(得分:1)

您可以尝试从包含整个证书链的文件创建pkcs12。您需要公共证书和根CA证书。命令是这样的:

openssl pkcs12 -export -inkey file.pem -in file.crt -out file.p12 \
-CAfile root-CA.pem -chain -name mykey

获得整个file.p12文件后,可以将完整证书导出为pem格式:

openssl pkcs12 -in file.p12 -out new-cert.pem -nodes -clcerts

或者,如果要导出到具有整个链的Java密钥库格式,则命令为:

keytool -importkeystore -srcstoretype pkcs12 -srckeystore file.p12 \
-srcstorepass <password> -keystore keystore.jks