无法将 .p12 证书导入 cacerts

Posted

技术标签:

【中文标题】无法将 .p12 证书导入 cacerts【英文标题】:Unable to import .p12 certificate to cacerts 【发布时间】:2013-04-04 14:14:33 【问题描述】:

在将.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 版本? 【参考方案1】:

大概意思是:

    cacerts已经有一个别名为 mb_ca 的条目 在.p12没有有一个别名为 mb_ca 的条目

尝试执行以下操作:

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

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

    使用-srcalias-destalias 进行更好的控制

实际上,如果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 文件中的别名。请帮我用它的命令 这应该可以keytool -list -keystore your_p12_file.p12 -storepass p12_password -storetype PKCS12 -v 顺便说一下,您正在尝试将.p12 导入到cacertsp.12 是具有一个私钥条目的密钥库。 cacerts 是受信任证书存储的常用名称。通常,您不应混合使用这两种条目。要导入p.12 条目的公钥,请先将其导出,然后再导入到cacerts。我会将命令添加到答案中。

以上是关于无法将 .p12 证书导入 cacerts的主要内容,如果未能解决你的问题,请参考以下文章

PHONEGAP - 无法导入证书 - IOS

苹果证书导出p12文件

如何使用iOS 开发证书 和 Profile 文件

如何使用iOS 开发证书 和 Profile 文件

如何使用现有的 .cer、.p12 或 .pfx 证书签署应用程序?

hbuilder ios 打包失败,无法导入p12证书的解决方案