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

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

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

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

目次

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

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

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

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

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

STEP
「アプリケーション」フォルダ内の「ユーティリティ」フォルダ内の「キーチェーンアクセス」を起動します。
キーチェーンアクセス
キーチェーンアクセス
STEP
左側の「デフォルトキーチェーン」から「ログイン」を選択します。

システムに元々インストールされている証明書の場合は「システム」や「システムルート」を選択します。

STEP
絞り込みから「証明書」を選択します。
STEP
書き出す証明書を選択します。
証明書を選択する
証明書を選択する
STEP
「ファイル」メニューから「書き出す…」を選択します。
STEP
書き出しダイアログが表示されるので、名前と保存先を選択します。
STEP
「フォーマット」から「個人情報交換 (.p12)」を選択し、「保存」ボタンをクリックします。
書き出しダイアログ
書き出しダイアログ
STEP
パスワード入力ダイアログが表示されるので、パスワードを入力し、「OK」ボタンをクリックします。

書き出されるファイルは入力したパスワードで暗号化されます。

パスワード入力ダイアログ
パスワード入力ダイアログ
STEP
キーチェーン「ログイン」のパスワードを入力してくださいと表示されるので、使用しているMacの管理者のパスワードを入力します。

通常はログインしているユーザーのパスワードです。

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

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

書き出された証明書に鍵が含まれているか確認します。ここでは、秘密鍵が含まれる証明書を書き出したので、書き出した証明書に秘密鍵が含まれているかを確認します。証明書の情報は、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証明書

書き出した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-----

著書紹介

Authored Books

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Akira Hayashi (林 晃)のアバター Akira Hayashi (林 晃) Representative(代表), Software Engineer(ソフトウェアエンジニア)

アールケー開発代表。Appleプラットフォーム向けの開発を専門としているソフトウェアエンジニア。ソフトウェアの受託開発、技術書執筆、技術指導・セミナー講師。note, Medium, LinkedIn
-
Representative of RK Kaihatsu. Software Engineer Specializing in Development for the Apple Platform. Specializing in contract software development, technical writing, and serving as a tech workshop lecturer. note, Medium, LinkedIn

目次