Generate public key from private key in keychain

ref link: http://stackoverflow.com/questions/16847081/i-lost-my-public-key-can-i-recover-it-from-a-private-key


如何通过private key来恢复public key?

public / private key都是成对生成的,但下面2种常见情况会丢失public key

1. 不小心从keychain里删掉public key

2. apple program admin会生成一个p12传给developer来通过它生成distribution ipa file,而developer在把这个p12导入到keychain之后,它只包含private key and certificate,并不包括public key。


另外如果key chain里只有private key,而没有对应的public key,那么当你right-click the private key -> "Request a certificate",就会出现error “The specified item could not be found in the keychain


下面方法可以通过private key in keychain来生成对应的public key.

1. In Keychain Access, right click the private key and select "Export..."  as eg "private.p12". 在导出过程中,你需要给该.p12 file设置一个密码,假设为 “123456”.

2. 执行下列命令把.p12 file转换成.pem file (e.g. private.pem) 。在此过程中你需要输入步骤1设置的密码,然后还需要给生成的pem file设置一个密码,假设依然为 “123456”.

openssl pkcs12 -in private.p12 -out private.pem

3. 执行下列命令来获取public key的pem file (e.g. public.pem) 。在此过程中你需要输入步骤2设置的密码

openssl rsa -in private.pem -pubout > public.pem

4. 执行下列命令把public.pem file导入到keychain tool里的"login" keychain里。

security import public.pem -k login.keychain

5. 打开keychain tool,进入"login" keychain > keys,你会看到一个“Imported public key” item,这就是步骤4导入的public key。double click it,你可以为其更改名称

6. !!注意:最后记得要清楚步骤1和2生成的private key .p12 and .pem file!!



你可能感兴趣的:(Generate public key from private key in keychain)