我创建了一个csr文件并将该文件发送给我的证书团队,他们给出了链接cer(内部证书)文件,我尝试使用Ikeyman接收cer文件,但它不允许我接收,我使用了keytool命令
keytool -import -trustcacerts -alias dev -file test.cer -keystore key.jks
它将证书添加到签名者区域,但它应该在个人部分。
任何人都可以帮助我如何在JKS个人栏目中添加cer链证书。
答案 0 :(得分:0)
您的术语仍然不标准且不清楚,因此我将列出基础知识并确定您的问题所在。
使用您自己的"证书,即属于您的私钥的证书,在Java中使用基本/普通密钥库,您需要在JKS文件中包含 all in one privateKey entry :
为避免虚假错误,您还必须在信任库中使用相关的 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
。