无法将.p12证书导入到cacerts

3
在将 .p12 导入到 cacerts 时,我遇到了以下问题。第一行说别名已经存在,当我尝试覆盖它时,它会显示别名未找到。请帮助我解决这个问题。
/usr/java/default/jre/bin/keytool -importkeystore -deststorepass changeit -destkeystore     /usr/java/default/jre/lib/security/cacerts -srckeystore /home/sogadm/MB_copy/MB_client.p12 -srcstoretype pkcs12 -srcstorepass 123456 -alias mb_ca
Existing entry alias mb_ca exists, overwrite? [no]:  yes
keytool error: java.lang.Exception: Alias <mb_ca> does not exist

你的.p12文件中有私钥吗?你使用的JRE版本是什么? - user1516873
1个回答

13

这可能意味着:

  1. cacerts中,您已经有一个别名为mb_ca的条目
  2. .p12中,您没有一个别名为mb_ca的条目

请尝试执行以下操作:

  1. 使用-list命令查看.p12中现有条目及其别名。根据您的示例,如下所示:keytool -list -keystore /home/sogadm/MB_copy/MB_client.p12 -storepass 123456 -storetype PKCS12 -v

  2. 如果中的条目是错误的或者您不需要该条目,请使用-delete删除现有的mb_ca条目

  3. 使用-srcalias-destalias以便更好地控制操作

实际上,如果是受信任的证书库,则不应将.p12中的私钥条目导入到它。首先导出公钥,然后将其导入到中:

keytool -exportcert -keystore /home/sogadm/MB_copy/MB_client.p12 -storepass 123456 -storetype PKCS12 -alias p12_entry_alias -file /home/sogadm/MB_copy/MB_client.cer

keytool -importcert -keystore /usr/java/default/jre/lib/security/cacerts -storepass changeit -alias mb_client -file /home/sogadm/MB_copy/MB_client.cer

希望它能帮到你。


无法列出 .p12 文件中的别名,请帮我用命令解决。 - Mrinal Bhattacharjee
2
这应该可以工作keytool -list -keystore your_p12_file.p12 -storepass p12_password -storetype PKCS12 -v - Sergio Pelin
2
顺便提一下,您正在尝试将 .p12 导入到 cacerts 中。p.12 是具有一个私钥条目的密钥库。cacerts 是受信任证书存储的通常名称。通常情况下,您不应混合这两种类型的条目。要导入您的 p.12 条目的公钥,请先导出它,然后再导入到 cacerts 中。我会在答案中添加命令。 - Sergio Pelin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接