Macでは、インストールされた電子証明書はキーチェーンアクセスによって管理されています。キーチェーンアクセスは電子証明書だけではなく、以下の様な情報を管理しています。
- アカウント情報(IDとパスワード)
- 秘密のメモ
- 電子証明書
- 公開鍵
- 秘密鍵
この記事では、電子証明書を書き出す方法について解説します。
Xcodeの書き出し機能について
iOSアプリの開発などで使用する、Appleデベロッパープログラムによって発行された証明書を、一括して書き出したいときは、Xcodeを使用します。詳しくは次の記事をご覧ください。
この記事では、一括書き出しではなく、個別に証明書を指定して書き出す方法について解説します。
秘密鍵を含めて書き出す方法
秘密鍵を含めて書き出すには次のように操作します。
システムに元々インストールされている証明書の場合は「システム」や「システムルート」を選択します。
書き出されるファイルは入力したパスワードで暗号化されます。
通常はログインしているユーザーのパスワードです。
鍵が含まれているか確認する
書き出された証明書に鍵が含まれているか確認します。ここでは、秘密鍵が含まれる証明書を書き出したので、書き出した証明書に秘密鍵が含まれているかを確認します。証明書の情報は、openssl
を使って確認します。
ターミナルで以下のように入力します。
% openssl pkcs12 -in 証明書ファイル -noout -info
たとえば、証明書.p12
であれば次のようになります。
% openssl pkcs12 -in 証明書2.p12 -noout -info
Enter Import Password:
Enter Import Password:
と出力され、パスワードの入力待ちになります。書き出し時に指定したパスワードを入力します。すると、次のように表示されます。
MAC Iteration 1
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
以下の2つの情報が証明書に入っていることがわかります。
Certificate bag
(証明書)Shrounded Keybag
(鍵)
証明書と鍵が両方とも出力できていることが確認できました。
X.509証明書を書き出す方法
キーチェーンアクセスは、X.509証明書を書き出すこともできます。X.509証明書を書き出すには、書き出しダイアログで「フォーマット」から「証明書 (.cer)」を選択して書き出します。
書き出したX.509証明書の内容を確認する
書き出したX.509証明書に選択した証明書と公開鍵が入っているかを確認します。確認するにはopenssl
を使用します。
% openssl x509 -inform der -noout -subject -in 証明書.cer
すると、次のように出力されます。
subject= /UID=XXXXXXXXXX/CN=Apple Development: Akira Hayashi (0123456789)/OU=0123456789/O=Akira Hayashi/C=US
キーチェーンアクセスで表示されていた名前と、CN
に書かれている名前が一致しているので、選択した証明書が書き出されています。また、次を実行すると証明書に入っている公開鍵が出力され、公開鍵が入っていることも確認できます。
% openssl x509 -inform der -noout -pubkey -in 証明書.cer
-----BEGIN PUBLIC KEY-----
(省略)
-----END PUBLIC KEY-----