1

我有确切的问题报告

Jarsigner:找不到证书链

我的出发点是一个 .pem 文件。我的感觉是这也有私钥。我使用以下命令将其导入密钥库:

keytool -importcert -alias myalias -file myfile.pem

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

密钥工具列表

产生类似于 Jarsigner: certificate chain not found for 中列出的输出。

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

我怎么解决这个问题?

附加信息:

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

4

1 回答 1

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
于 2013-11-07T22:22:07.680 回答