メモ(鍵とか証明書とか)

Pocket
LINEで送る

iOSでのPush通知(Provider側)を実装するのにいろいろ証明書やら鍵を作成するので
その時に調べた内容をメモしておきます。

まずは鍵と証明書の種類について
 .key : 秘密鍵(Private Key)
 .csr : 証明書発行要求(CSR : Certificate Signing Request)
 .crt : 証明書(CRT : Certificate)
 .crl : 証明書失効リスト(CRL : Certification Revocation List)

これらには、DER(Distinguished Encoding Rules)形式 と PEM(Privacy Enhanced Mail)形式がある。PEM形式は、DER形式(バイナリ)をBASE64で可視化したもの。
これを踏まえてProviderにインストールするSSL証明書と鍵を作成する。
apns-dev-cert.p12 : 証明書から作成したもの
apns-dev-key.p12 : 秘密鍵から作成したもの

① PKCS #12 ファイルapns-dev-cert.p12 から SSLサーバ証明書(EV SSL証明書)を取り出し、apns-dev-cert.pemに保存

$ openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

② PKCS #12 ファイルapns-dev-key.p12 から秘密鍵を取り出し、暗号化せずにapns-dev-key.pem に保存

$ openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

③ Apache で ssl を使用する場合、起動時に秘密鍵のパスワードを聞いてくるので,途中でとまってしまいます。
server.key を復号化して、パスワードを入力しなくても秘密鍵を使用できるようする。

$ openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem

④ apns-dev-cert.pem と apns-dev-key-noenc.pemを連結してapns-dev.pemに吐き出す

$ cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem

apns-dev-key-noenc.pem, apns-dev.pem をサーバの適切な場所へ放りこんでおく。

Push通知は実装以上にこの辺が面倒だな。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください