如何将cer文件导入jks文件

时间:2015-04-01 23:36:18

标签: ssl

我创建了一个csr文件并将该文件发送给我的证书团队,他们给出了链接cer(内部证书)文件,我尝试使用Ikeyman接收cer文件,但它不允许我接收,我使用了keytool命令

keytool -import -trustcacerts -alias dev -file test.cer -keystore key.jks

它将证书添加到签名者区域,但它应该在个人部分。

任何人都可以帮助我如何在JKS个人栏目中添加cer链证书。

1 个答案:

答案 0 :(得分:0)

您的术语仍然不标准且不清楚,因此我将列出基础知识并确定您的问题所在。

使用您自己的"证书,即属于您的私钥的证书,在Java中使用基本/普通密钥库,您需要在JKS文件中包含 all in one privateKey entry

  • 您的私钥
  • 将您的公钥绑定到您的证书(通常)由CA(证书颁发机构)颁发给您,正式称为"终端实体" cert,
  • 可能但很少没有,通常是一个,或者有时是一些其他证书,用于识别一个或多个CA,以形成验证链#34;从您的EE证书到受信任的CA" root"或者"锚定#34;证书。这些证书被官方称为"中间"证书,但由于他们被用来形成一个链,他们通常被称为"链"证书。

为避免虚假错误,您还必须在信任库中使用相关的 root / anchor证书,默认为JRE/lib/security/cacerts,但可以修改。如果您的证书是由着名的CA(如Verisign或GoDaddy)使用其根源发布的,则在安装时会将这些根包含在Java中,除非您(或管理员之类的人)故意删除它们。如果您的证书是由独立的私有CA(例如由您工作的企业或政府机构运营的CA)颁发的,则其根目录应安装在您的Java中;这可能已经完成(可能由您的管理员或您过去)或者您现在可能需要这样做。

这允许您使用证书(AND键,实现协议所需)来证明您在SSL / TLS客户端(或使用PFS的服务器)或发送签名电子邮件等应用程序中的身份,或解密数据PK - 加密到您,例如SSL / TLS服务器或接收加密电子邮件。

执行此操作的直接方法是将包含新EE证书和链证书的文件(只是PEM序列或p7b格式)导入<用于生成CSR的strong>相同的privateKey条目;这意味着相同的JKS文件相同的条目,使用-alias指定或可能默认为mykey。你可以使用JKS的副本,或者包含privateKey条目副本的另一个JKS(可能除了其他条目以及可能已重命名),但做这样的事情你很容易混淆自己。如果您向右迈出这一步,keytool应该说Certificate reply was installed in keystore不是Certificate was added to keystore

如果您没有并且无法获得所有证书 - 您的EE证书和链证书 - 在一个适合上述内容的文件中,您必须遵循稍微复杂一点的要求过程:

  • 将链证书(如果从上到下一次多个)导入到密钥库中的trustedCert条目(或者可选地导入cacerts),但通常是坏主意)使用不同的和唯一的别名(es)而不是privateKey别名;这一步应该说Certificate was added to keystore

  • 然后将您的EE证书导入privateKey条目(别名)。 keytool会将链证书添加到privateKey条目。这被称为构建链,如果你做错了,你会得到一个关于&#34;错误建立链&#34;的错误。这一步应该说Certificate reply was installed in keystore