我正在尝试使用 globalsign 颁发的代码签名证书对 jar 文件进行签名。
我对此完全陌生,但经过一些谷歌搜索和大量试验和错误后,我执行了以下步骤。
我已使用以下方法将证书导入到我的 keystore 中:
keytool -importcert -alias signalias -file OS200912023195.cer
当我尝试使用以下方式签署我的 jar 文件时:
jarsigner applet.jar signalias
我收到以下错误:
jarsigner: Certificate chain not found for: signalias. signalias must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
我是不是忘记了什么或者证书有问题?
最佳答案
...I'm wondering if I maybe need something more than just a cer file?...
@Mark 我想你是对的。我记得,异常类型如
jarsigner: Certificate chain not found for: signalias. signalias must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
...让我觉得你试图只用证书签署 jar。所以你必须跳过一些重要的步骤:|
如果你想使用证书,你要做的第一件事就是生成 CSR ...
- A) 生成 keystore ;然后在 keystore 中生成公钥/私钥。像一个命令
keytool -genkey -alias mydomain -keyalg RSA -keystore keystore.jks -keysize 2048
- B) 然后生成 CSR - 如需更多信息,您可以阅读 this .像一个命令
keytool -certreq -alias mydomain -keystore keystore.jks -file mydomain.csr
- C) 有关 keytool 常用命令的更多详细信息,您可以阅读 this
如果您对 OpenSSL 没问题,那么按照步骤 D 生成您自己的证书...
- D) 如果您需要自签名证书,您可以 关注these步骤...
...回到你的 keystore
- E) 只有在那之后你才能将证书导入到你的 keystore 中,命令如下
keytool -import -trustcacerts -alias root -file server.crt -keystore keystore.jks
- F) 只有这样你才能使用 jarsigner 为你的 jar 签名的工具
如果有帮助请点赞
关于java - 使用 .cer 文件签署 .jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11796976/