当前位置: 首页 > 面试题库 >

如何从GoDaddy导入证书进行Java代码签名?

陈晟睿
2023-03-14
问题内容

我需要能够使用来自CA的证书对jar文件进行签名。

我按照GoDaddy文档中的说明进行操作: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来重新输入密钥。,他们至少能够成功导入PEM文件。但是我不确定这是否是正确的方法。

GoDaddy的技术支持绝对令人恐惧。我与之交谈的大多数技术人员根本都不熟悉keytool,在将我转交给SSL部门(480-505-8852)之前,我花了好几次尝试打电话给他们,这至少比一般的技术要好支持。

如果使用Internet
Explorer或Firefox,我相信我可以自动生成CSR,而不必通过密钥工具创建CSR。然后,我将通过网络浏览器导出证书。通过阅读其他各种在线文档,我相信我可以使用openssl将其转换为keytool的正确格式。我不确定这将如何工作的详细信息,但是我看不到其他任何选择。

有没有人成功做到这一点,或者对如何进行有任何指示?我在这里找到了类似的问题(使用GoDaddy的spc文件对Java
applet进行签名),但答案只是将我引到了GoDaddy的文档欠佳。如果可以的话,我会使用另一个CA,但是我已经付了钱,并经历了漫长而冗长的验证过程


问题答案:

解决方法是与GoDaddy联系,并让他们重新颁发您组织的证书。在证书设置过程中,必须选择SHA-1代码签名证书,而不是SHA-2。仅当您的证书有效期未延至2016年(请参阅下文)时,才选择SHA-1的选项才可用,因此请
确保他们了解您的最终目标是将SHA-2证书重新创建为SHA-1,以便他们知道向您出售具有正确有效期的证书。

今天,我将SHA-2证书换成了SHA-1,而GoDaddy的Java代码签名指令非常有效。

GoDaddy通知我Keytool可能无法导入从其SHA-2(2048长)代码签名证书生成的证书响应链。我保留对Keytool的判断,因为当根据@mogsie的答案从pem文件中删除GoDaddy的根SHA1证书时,它可以很好地导入SHA-2证书。

当GoDaddy授予代码签名证书(将延续到2017年)时,它将自动使用SHA-2,因为Microsoft从2016年1月1日开始不会接受少于SHA-2的证书,因此,如果您打算购买SHA-1证书,它将具有短期有效性。

通过Java Keytool更新(我正在使用1.6),或者如果GoDaddy的Sha256withRSA自签名证书受到广泛信任,该问题可能会消失。



 类似资料:
  • 问题内容: 我需要在运行时生成自签名证书,对其进行签名并导入到Java密钥库中。我可以通过以下方式从命令行使用“ keytool”和“ openssl”来做到这一点: 当然,我可以使用keytool和openssl二进制文件来交付我的应用程序,并从Java执行上述命令,但是我正在寻找一种更干净的方法,该方法允许我使用纯Java来完成上述所有操作。 我可以使用任何库吗? 问题答案: 使用Bouncy

  • 问题内容: 我想知道如何在GoLang Https服务器上使用godaddy的ssl证书。 目前,我正在使用以下代码: 我还有。如何将其添加到证书链中? @Vonc的回答确实很有帮助,我只是想念最后一件事。我正在使用http.Server实例来更改ReadTimeout和WriteTimeout参数。如何使用tls做到这一点? 我之前的代码: 谢谢! 问题答案: 您可以在本节中看到完整的示例。 证

  • 问题内容: 2014年11月29日更新- 这仍然是一个问题,Godaddy似乎不在乎也不会对此做任何事情。几个月前,Godaddy安全产品副总裁在这里发表了一篇博客文章,指出正在修复该问题,并提供了一种临时解决方法,但是到目前为止,没有任何变化。重要的是要注意,Godaddy的G2 CA服务器已经存在至少5年了,在那时,Godaddy尚未采取适当的步骤来解决此已知问题。提供的解决方法仅是一种解决方

  • 我有一个java服务器,它正试图通过SSL连接到外部Ldap服务器(作为客户端来执行查询)。 我在连接时遇到了麻烦,因为他们在连接时发送给我的证书仅在我的本地窗口信任库中受信任,但在java信任库(cacerts)中不存在。 有没有办法告诉Java信任windows信任的任何证书? 或者,有没有一种方法可以将所有受信任的证书从窗口信任库导入到Java的cacerts? 任何想法都将不胜感激。

  • 我从goaddy购买了SSL证书。我创建了一个密钥库文件,从中生成了一个csr文件,将其发送到goaddy,并收到了这些文件: mydomain.crt gd_intermediate gd_bundle 现在我试图在AWS控制台中创建一个弹性负载平衡器。当被问及证书详情时,他们会问: 私钥(pem 编码) 公钥证书(pem 编码) 证书链(pem 编码,可选) 如何将我拥有的文件转换为这些参数?

  • 问题内容: 我想将我的一个应用程序发布为开源,并想用自己的证书对我创建的二进制文件进行数字签名。(当然,其他任何人都可以下载代码并使用自己的证书自己构建代码。)我想这样做,以便任何人都可以检查此构建是我而不是其他人进行的。我还想用有效的SSL证书创建一个安全的网站,以便访问者可以安全的方式创建自己的帐户,以便为该项目做出贡献。 我可以创建一个自签名证书,但是我真的不喜欢该选项。或者,我可以向Ver