我失去了我的公钥。 我可以从私钥恢复吗?
我为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私钥。