我需要能够使用 CA 的证书对 jar 文件进行签名。
我按照 GoDaddy 文档中有关如何执行此操作的说明进行操作:http://support.godaddy.com/help/article/4780/signing-java-code http://support.godaddy.com/help/article/4780/signing-java-code
但是,步骤 3 需要导入从 GoDaddy 网站获取的证书文件。根据文档,命令是:
keytool -import -trustcacerts -keystore codesignstore -storepass <yourstorepwd> -alias codesigncert -file mycert.cer
尽管我成功提交了 CSR(由 keytool 生成)并获得了响应,但我无法弄清楚如何获取 mycert.cer 文件。有一个选项可以下载 PEM 文件。但运行上述命令后,我收到错误“keytool错误:java.lang.Exception:回复中的证书链不完整”。我已经尝试过多次,并仔细检查我使用的是正确的密钥库。我什至尝试过一次使用 SSH-1 重新加密,另一次使用 SSH-2 重新加密。据此人介绍(https://stackoverflow.com/questions/20793254/signing-a-jar-the-signers-certificate-chain-is-not-validated?rq=1 https://stackoverflow.com/questions/20793254/signing-a-jar-the-signers-certificate-chain-is-not-validated?rq=1),他们至少能够成功导入 PEM 文件。但我不确定这是否是正确的方法。
GoDaddy 的技术支持绝对是糟糕的。与我交谈过的大多数技术人员根本不熟悉 keytool,我花了好几次尝试给他们打电话,然后他们才将我转到他们的 SSL 部门 (480-505-8852),这至少比一般的要好一些支持。
如果我使用 Internet Explorer 或 Firefox,我相信我可以自动生成 CSR,而不是通过关键工具创建 CSR。然后我将通过网络浏览器导出证书。通过阅读其他各种在线文档,我相信我可以使用 openssl 转换为 keytool 的正确格式。我还不确定这将如何运作的细节,但我没有看到任何其他选择。
有没有人成功做到这一点或有任何关于如何继续的指示?我在这里发现了类似的问题(使用 GoDaddy 的 spc 文件签署 java 小程序 https://stackoverflow.com/questions/4369576/signing-a-java-applet-with-an-spc-file-from-godaddy),但答案只是让我注意到 GoDaddy 的糟糕文档。如果可以的话,我会使用另一个 CA,但我已经付了钱并完成了漫长的验证过程。