从钥匙串“我的证书”中导出 p12 文件

Posted

技术标签:

【中文标题】从钥匙串“我的证书”中导出 p12 文件【英文标题】:Export p12 file from keychain "My Certificates" 【发布时间】:2016-02-19 20:27:41 【问题描述】:

我正在尝试从 MAC 机器导出证书密钥“Apple Push Service”(用于 Google Cloud Messaging 海豚)。这个密钥我刚刚通过 Apple 网站的以下步骤创建了它

要手动生成证书,您需要证书签名 从 Mac 请求 (CSR) 文件。要创建 CSR 文件,请按照 下面的说明使用钥匙串访问创建一个。

创建 CSR 文件。

在 Mac 上的 Applications 文件夹中,打开 Utilities 文件夹,然后 启动钥匙串访问。

在 Keychain Access 下拉菜单中,选择 Keychain Access > 证书助手 > 从证书请求证书 权威。

在“证书信息”窗口中,输入以下信息: 在用户电子邮件地址字段中,输入您的电子邮件地址。 在 Common Name 字段中,为您的私钥创建一个名称(例如,John Doe Dev Key)。 CA 电子邮件地址字段应留空。 在“请求是”组中,

选择“保存到磁盘”选项。

在 Keychain Access 中点击 Continue 以完成 CSR 生成 过程。

我创建了证书,我需要将其导出到 .p12 文件以完成我的过程。

所以我做了如下过程(转到钥匙串并尝试导出)

然后,当我尝试写入密码时,什么也没有发生,没有错误,也没有导出(什么都没有)!!!!

我确定我的密码是正确的,并确保我再次重置了我的钥匙串“登录”,然后重新启动 MAC 机器,然后再试一次,但还是不行!!

我也尝试通过下面的命令行导出密钥

security export -k login.keychain -t all -f pkcs12 -P myPasswordHere

但由于以下错误而无法正常工作

security: SecKeychainItemExport: A cryptographic verification failure has occurred.

我什至尝试删除此证书并重做一遍,甚至尝试重置所有登录钥匙串并重做所有内容,但这也无济于事!

任何帮助我如何导出这个证书??? 谢谢。

【问题讨论】:

不工作是什么意思?无法推送和获取通知?如果是,很多事情要检查。 您检查过您的 wwdr 证书吗?我对所有这些都是新手。请检查一下。 @Lumialxk,不工作意味着证书的导出不起作用,要使用 GCM 发送到 ios,您需要导出证书并将其上传到您的 Google 开发帐户。 @abhi1992 我不确定 wwdr 是什么? ***.com/questions/35418761/… 【参考方案1】:

我知道我的问题的答案,我想分享它,它可能会有所帮助。

这个问题是由于我尝试使用 VNC 远程从钥匙串导出证书。根据 Apple 网站,从 MAC 更新 10+ 开始,如果您使用任何远程工具,则可以防止从钥匙串导出证书,您应该只能在物理机上执行此操作。

详情见以下链接

https://discussions.apple.com/thread/7305746?tstart=0

“问题是通过 Apple Remote 在这些机器上远程工作 桌面。随着 10.11.1 更新,Apple 引入了“安全修复” 禁用非物理设备与之交互的能力 钥匙串。您可以在此处查看此“修复”的详细信息(滚动全部 到页面底部的方式并查找 CVE-2015-5943 完整描述):

About the security content of OS X El Capitan v10.11.1 and Security Update 2015-007 - Apple Support"

如果您查看 通过 Console.app 的系统日志。当您单击“始终允许”时,您 应该在日志中看到以下内容:

Ignoring user action since the  dialog has received events from an untrusted source

基本上,您的点击被注册为“合成点击”。在 我的情况,这是因为我使用的是 Apple Remote Desktop(我也 测试了我使用的各种其他远程应用程序,例如 TeamViewer 和 iTeleport 连接,并且都在日志中导致相同的错误)。基本上, 这会影响任何屏幕共享应用程序。我的解决方案是开车进入 办公室并实际单击每台计算机上的“始终允许”。耶。 感谢苹果!伟大的“修复”!!!

我去尝试物理访问MAC服务器后,问题解决了,我可以从登录KeyChain导出证书。

【讨论】:

我很惊讶有时这适用于桌面自动化软件 - 但有时它无法识别表单。

以上是关于从钥匙串“我的证书”中导出 p12 文件的主要内容,如果未能解决你的问题,请参考以下文章

将 .p12 证书存储在钥匙串中以供以后使用

想使用登录钥匙串卡死

钥匙串代码签名权利 - 奇怪的行为,钥匙串丢失

启用钥匙串共享会改变您的 AppID 吗?

苹果密码钥匙串在哪里

使用 Swift 向 iOS 钥匙串添加项目和查询