2012-10-26 46 views
2

我的客户给了我一个密钥库,用于签署Java applet jar文件。我从它导出一个.cer文件,然后将其导入到cacerts中,但我一直收到“找不到证书链”错误。它还说“别名必须引用包含私钥和对应公钥证书链的有效KeyStore密钥条目”。如何使用提供的密钥库签署jar文件

我试图加斯东的建议之下,它去如下:

jarsigner -keystore "D:\My Documents\keystore\MyKeyStore.jks" -storepass mypass -signedjar my_signed_jar.jar" unsigned.jar myalias 

Warning: 
The signer's certificate chain is not validated. 

回答

0

如果你只是想签从密钥库罐子,你应该运行在命令行:

% JAVA_HOME%\ bin \ jarsigner -keystore YOUR_KEY_STORE.ks -storepass KS_PASS YOUR_JAR KS_ALIAS

我希望这会对您有所帮助。

+0

感谢您的答复!我想,这是结果: 的jarsigner -keystore “d:\我的文档\密钥库\ ProvidedKeyStore.jks” -storepass为mypass -signedjar my_signed_jar.jar” unsigned.jar myalias 警告: 签名者的证书链未经验证 – user1777295

+0

如果您使用JDK 7,现在尝试使用JDK 6版本(尝试使用32位和64位版本) –

1

整个情况是无效的。

  1. 你应该用自己的私钥签名JAR文件,而不是其他人的。

  2. 您的客户承诺通过泄露他的私钥而犯下主要安全漏洞。

  3. 您提到的关于签名者证书链未经验证的问题完全是客户端的问题。他提供了证书:其有效性完全取决于他。

不是你的问题,但不是一个真正的问题,因为整个情况都是无效的。您应该使用自己的证书签署自己的代码。

0

我从中导出了一个.cer文件,然后将其导入到cacerts中,但是我的 不断收到“Certificate chain not found”错误。

当然,链不会被发现:)你不应该出口,因为签一个罐子,但你必须使用原始密钥库关键 - 根据生成的证书的关键..

如果您拥有所有权限作为密码等,您应该使用原始密钥库密钥客户端给你签署的jar。接下来,您必须使用jarsigner常用命令类似

jarsigner -keystore C:\working\mystore -storepass myspass 
     -keypass dukekeypasswd MyJarFile.jar duke 

P.S>

请报告是否有帮助

+0

不,不幸的是, – XXL

相关问题