Java密钥对 - 私人&公众 - 我只有私人

时间:2012-09-06 16:19:03

标签: android java keystore keytool

我在打包应用程序时遇到了一些问题,因为jarsigner不断告诉我:

jarsigner: Certificate chain not found for: MyApp.  MyApp must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.

我使用以下命令生成密钥库:

 keytool -genkey -keystore myAppKeystore.keystore -alias myApp

然后填写其提示的其他信息。

当我使用此命令检查应用程序时,我发现:

keytool -keystore myAppKeystore.keystore -list -v

它说了这样的话,似乎只说私钥:

Alias name: myApp
Creation date: 06-Sep-2012
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: ......etc

我确信这将是非常明显的事情,但我错过了什么?我的印象是前一个命令创建了一个密钥对?不只是私钥。

谢谢!

2 个答案:

答案 0 :(得分:1)

您需要获得public key certificate。您可以使用keytool生成证书颁发机构的证书请求并导入证书回复。也许您只需要self-signed certificate

答案 1 :(得分:1)

您需要使用'keytool -selfcert ...'为密钥对生成证书。更好的是,生成CSR并让您的CA颁发代码签名证书。