我的客户端为了签署Java applet jar文件而给了我一个密钥库。我从中导出了一个.cer文件,然后将其导入cacerts但我一直收到“找不到证书链”错误。它还说“别名必须引用包含私钥和相应公钥证书链的有效KeyStore密钥条目。”
我在下面尝试了加斯顿的建议,其内容如下:
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 :(得分:1)
整个情况无效。
您应该使用自己的私钥来签署JAR文件,而不是其他人。
您的客户通过泄露他的私钥来承担 MAJOR 安全漏洞。
您提到的有关签名者证书链未经验证的问题完全是客户端的问题。他提供了证书:证明其有效性完全取决于他。
不是你的问题,但根本不是一个真正的问题,因为整个情况都是无效的。您应该使用自己的证书签署自己的代码。
答案 1 :(得分:0)
如果您只想从密钥库中签名jar,则应在命令行中运行以下命令:
%JAVA_HOME%\ bin \ jarsigner -keystore YOUR_KEY_STORE.ks -storepass KS_PASS YOUR_JAR KS_ALIAS
我希望它会有所帮助。
答案 2 :(得分:0)
我从中导出了一个.cer文件,然后将其导入cacerts但是我 不断收到“找不到证书链”错误。
当然,链条将无法找到:)你不应该导出因为签署一个jar但你必须使用原始的密钥库密钥 - 证书生成的密钥...
如果您拥有密码等所有权限,则应使用客户端为您签署jar的原始密钥库密钥。接下来,您必须使用jarsigner常见命令,如
jarsigner -keystore C:\working\mystore -storepass myspass
-keypass dukekeypasswd MyJarFile.jar duke
P.S>
请报告是否有帮助