2012-09-06 104 views
0

我有,因为的jarsigner不断告诉我包装的应用中的一些问题是:Java的密钥对 - 私人 - 公共 - 我只有私人

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 

我敢肯定它会是真的很明显,但我错过了什么?我之前的命令创造了一个密钥对的印象?不只是私钥。

谢谢!

回答

1

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

+0

谢谢,我现在明白了很多:)阅读后我需要一个可信的证书,所以自签名不会。 –

1

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

+0

谢谢,非常有帮助:) –