Java 无法将.p12证书导入到cacerts

Java 无法将.p12证书导入到cacerts,java,authentication,keytool,pkcs#12,jks,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 -

在将
.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
/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
现有条目别名mb_ca存在,是否覆盖?[否]:是的
keytool错误:java.lang.Exception:别名不存在

这可能意味着:

  • cacerts
    中,您已经有一个别名为mb\u ca的条目
  • .p12
    中,您没有别名为mb\u ca的条目
  • 尝试执行以下操作:

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

  • -删除
    cacerts
    中的现有mb\u ca条目(如果该条目错误或不需要)

  • 使用
    -srcalas
    -destalas
    进行更好的控制
  • 实际上,如果
    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
    

    希望有帮助。

    您在.p12文件中有私钥吗?您使用的是什么JRE版本?无法在.p12文件中列出别名。请帮助我使用该命令。该命令应能正常工作。
    keytool-list-keystore your_p12_file.p12-storepass p12_password-storetype PKCS12-v
    顺便说一句,您正在尝试将
    .p12
    导入
    cacerts
    <代码>第12页
    是带有一个私钥项的密钥存储库
    cacerts
    是受信任证书存储的常用名称。通常,您不应将这两种条目混合使用。要导入
    p.12
    条目的公钥,请先将其导出,然后导入到
    cacerts
    。我将把命令添加到答案中。