我失去了我的公钥。 我可以从私钥恢复吗?

我为iOS / OSX开发创build了一个密钥对+签名证书。 一路上,我丢失了与我的私钥一起使用的公钥。 也许这是因为钥匙串访问不会将私钥和公钥集合在一起,就像它与证书和私钥一样(这太恼人了!为什么它不这样做!)

在钥匙串访问中,我仍然可以右键单击私钥 – >“请求证书”; 但没有可用的公钥,我得到错误“指定的项目不能在钥匙串中find”。 我确定公钥是可以恢复的,但是如何呢? 显然,钥匙串访问不够智能自动执行。

我终于明白了这一点,几天后我的答案就会正确无误,除非有人给答案增加新的东西。

我记得模糊地能够用openssl在.pem文件上做到这一点,所以这就是我所领导的方向。

  • 在钥匙串访问中,导出私钥,例如private.p12 。 应用密码,或不。
  • 将其转换为.pem: openssl pkcs12 -in private.p12 -out private.pem 。 input上一步的密码。 您被迫将密码应用到.pem。
  • 提取公共部分: openssl rsa -in private.pem -pubout > public.pem 。 input上一步的密码。
  • 导入钥匙串访问: security import public.pem -k login.keychain 。 如果您没有指定钥匙串,导入似乎完成,但我找不到该项目放在哪里。
  • 在“钥匙串访问”中,查看“导入的公钥”的login钥匙串。 重命名并移动到所需的位置。
  • 自己清理一下,特别是没有密码或者密码不好的.p12和.pem私钥。