无法将.p12证书导入cacerts

时间:2013-04-12 06:44:18

标签: java authentication keytool pkcs#12 jks

.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

1 个答案:

答案 0 :(得分:5)

这可能意味着:

  1. cacerts 已经 带有别名的条目 mb_ca
  2. .p12的条目 mb_ca
  3. 尝试执行以下操作:

    1. 使用-list查看.p12及其别名的现有条目。适应你的例子,它将是这样的: keytool -list -keystore /home/sogadm/MB_copy/MB_client.p12 -storepass 123456 -storetype PKCS12 -v

    2. -delete cacerts中现有的 mb_ca 条目,如果它是错误的,或者您不需要它

      < / LI>
    3. 使用-srcalias-destalias进行更好的控制
    4. 实际上,如果cacerts是受信任的证书存储区,则您不应从.p12导入私钥条目。首先导出公钥,然后将其导入cacerts

      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
      

      希望它有所帮助。