iOSでPush通知証明書を発行しようとする時にでたエラー
Push通知のために証明書を発行しようとKeychainAccessで証明書署名リクエスト (CSR) ファイルを作成しようとすると、以下のようなエラーが出てきた。指定された項目がキーチェーン内に見つかりませんでしたと書いてある。

原因
秘密鍵に対応する公開鍵が、KeychainAccessに登録されていないためだそう。
解決策
- KeychainAccessを開いて、利用するprivateキーをExportする。ここでは
private.p12とする。パスワードは入力せずに作成しても問題ない。
- 先程Exportしたファイルと同じ場所に移動する。
openssl pkcs12 -in private.p12 -out private.pemで、.p12から.pemにする。Exportする時に設定したパスワードと新しいパスワード(ここは4文字以上)設定する。 -
openssl rsa -in private.pem -pubout > public.pemを実行する。 -
security import public.pem -k login.keychainでKeychainAccessにインポートする。 - ローカルに作成した
.p12ファイルや.pemファイルを削除する。