Macで電子証明書を書き出す方法

Macはインストールされた電子証明書をキーチェーンアクセスが管理しています。キーチェーンアクセスは電子証明書だけではなく、以下の様な情報を管理しています。

  • アカウント情報(IDとパスワード)
  • 秘密のメモ
  • 電子証明書
  • 公開鍵
  • 秘密鍵

この記事では、電子証明書を書き出す方法について解説します。

スポンサーリンク

Xcodeの書き出し機能について

iOSアプリの開発などで使用するAppleデベロッパープログラムによって発行された証明書を一括して書き出したいときは、Xcodeを使用します。詳しくは次の記事をご覧ください。

関連記事

iOSアプリなどのApple Platform向けの開発をしていると、Apple Developer Programで発行された電子証明書などコードサイニングに必要な情報がマシンに保存されています。私の場合は、これらの証明書をバックアップ[…]

この記事では、一括書き出しではなく、個別に証明書を指定して書き出す方法について解説します。

秘密鍵を含めて書き出す方法

秘密鍵を含めて書き出すには次のように操作します。

(1) 「アプリケーション」フォルダ内の「ユーティリティ」フォルダ内の「キーチェーンアクセス」を起動します。

(2) 左側の「デフォルトキーチェーン」から「ログイン」を選択します。システムに元々インストールされている証明書の場合は「システム」や「システムルート」を選択します。

(3) 絞り込みから「証明書」を選択します。

(4) 書き出す証明書を選択します。

(5) 「ファイル」メニューから「書き出す…」を選択します。

(6) 書き出しダイアログが表示されるので、名前と保存先を選択します。

(7) 「フォーマット」から「個人情報交換 (.p12)」を選択し、「保存」ボタンをクリックします。

(8) パスワード入力ダイアログが表示されるので、パスワードを入力し、「OK」ボタンをクリックします。書き出されるファイルは入力したパスワードで暗号化されます。

(9) キーチェーン「ログイン」のパスワードを入力してくださいと表示されるので、使用しているMacの管理者のパスワードを入力します。通常はログインしているユーザーのパスワードです。

(10) 指定した場所に証明書が書き出されます。

鍵が含まれているか確認する

書き出された証明書に鍵が含まれているか確認します。ここでは、秘密鍵が含まれる証明書を書き出したので、書き出した証明書に秘密鍵が含まれているかを確認します。証明書の情報は、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-----
スポンサーリンク
最新情報をチェックしよう!