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
ファイルを削除する。