web-dev-qa-db-ja.com

公開鍵を紛失しました。秘密鍵から回復できますか?

IOS/OSX開発用のキーペアと署名付き証明書を作成しました。途中のどこかで、秘密鍵に付随する公開鍵を紛失しました。おそらく、Keychain Accessは、証明書や秘密鍵の場合のように、秘密鍵と公開鍵をグループ化しないためです(これは非常に苛立たしいことです!なぜそうしないのですか?)

キーチェーンアクセスでは、秘密鍵を右クリックして-> [証明書を要求する]を選択できます。しかし、利用可能な公開鍵がないと、「指定されたアイテムがキーチェーンに見つかりませんでした」というエラーが表示されます。私はかなり公開鍵が回復可能であることを確信していますが、どうすればよいですか?明らかに、キーチェーンアクセスはそれを自動的に行うほど賢くはありません。

私は最終的にこれを理解し、誰かが答えに何か新しいものを追加しない限り、数日後に私の答えを正しいとマークします。

21
Paul Du Bois

.pemファイルのopensslでこれを漠然と実行できることを思い出したので、それが私が向かった方向です。

  • キーチェーンアクセスで、秘密鍵をたとえばprivate.p12としてエクスポートします。パスワードを適用するかどうか。
  • .pemに変換します:openssl pkcs12 -in private.p12 -out private.pem。前の手順のパスワードを入力します。 .pemにパスワードを適用する必要があります。
  • パブリック部分を抽出します:openssl rsa -in private.pem -pubout > public.pem。前の手順のパスワードを入力します。
  • キーチェーンアクセスにインポート:security import public.pem -k login.keychain。キーチェーンを指定しないと、インポートは完了したように見えますが、アイテムが配置された場所が見つかりませんでした。
  • キーチェーンアクセスで、ログインキーチェーンで「インポートされた公開鍵」を探します。名前を変更して、目的の場所に移動します。
  • 特に、パスワードがないか不十分な.p12および.pem秘密鍵を自分でクリーンアップします。
57
Paul Du Bois