iPhoneでSSLクライアント認証したり(私は繋ぐ先がありませんが)VPN接続したり(iPhoneにはS/MIME対応のメーラーが無いようですが)S/MIME署名・暗号メールを送ったりするには自分の証明書と鍵を入れてあげなければなりません。
その際に、iPhone構成ユーティリティーというのを使うんだそうです。iPhone Labさんの「iPhone 3Gでユーザー証明書を利用してみる」にかなり詳しく書かれていたので、これを参考に自分もやってみました。iPhone LabさんではMac OSでやっていますが、自分のはWindowsなので若干手順が違います。
まずはiPhone構成ユーティリティーのWindows版をAppleのサイトからダウンロードしインストールします。
クライアント証明書インストールの構成をする際には、(Windowsを母艦にして行う場合)自分の証明書がWindowsの個人証明書ストアに入っている必要があります。(PKCS#12(.pfx)ファイルを持っているだけではだめです。)事前に準備しておきます。
構成ユーティリティーを起動し、左側ペインの「構成プロファイル」を選択し上の「新規」ボタンを押し、「一般」を選び、プロファイルに名前を適当につけます。
・名前
・識別子 (ドメイン名みたいなもん)
・組織 (構成プロファイルを発行する組織。オレ様ですね。)
を入力しておきます。

クライアント証明書のインストールには「資格情報」を選び、「構成」のボタンを押します。

Windows証明書ストアの個人ストアから自分がiPhoneで使いたい証明書(と鍵)を一つ選びます。(ここでは余分な自分が秘密鍵を持っているわけもないルート証明書なんかも選択できてしまいます。選ぶのが大変なので辞めて欲しいです。)

iPhoneでインポートする際に求められるパスワードを設定します。

無事設定できました。ファイルを書き出すために上の方の「書き出す」ボタンを押します。

構成プロファイルには署名することができるそうです。署名が好きなのでw迷わず署名します。

これで、無事構成ファイルができました。拡張子は ".mobileconfig" というファイルになります。
これをメールに添付してiPhoneに送ります。するとiPhoneでは"You got a mail!"します。

先ほどのファイルが添付されているのでコレを開きます。

こんな風な設定画面が表示されるので、「インストール」のボタンを押します。

先ほど設定されたパスワードを入力すると、無事クライアント証明書がインストールされました。

接続確認のため、iPhoneのブラウザSafariで、この証明書(と鍵)でSSLクライアント認証するウェブサイトに接続してみたところ、ちゃんと接続できました。
この証明書はS/MIME証明書にもなるんですが、ちょっと探してみたところ、iPhoneではS/MIME対応のメーラーが無いようなんです。とても残念。見つけたら試してみたいと思います。
さて、先ほど生成した構成プロファイルですが、ファイルを見てみたところ内包署名のPKCS#7署名データになっていました。署名は"uniqueIdentifier=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, CN=iPCU CA XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"のような識別名の自己署名証明書でやっていました。
署名対象データを取り出してみるとPKCS#12秘密鍵ストアをBase64エンコーディングして格納してちょっと属性をつけたXMLファイルになっていました。
dictの構造がXML的でなく気持ち悪く、なんとなくPDFのディクショナリに近いものを感じてしまうのは私だけでしょうか、、、
その際に、iPhone構成ユーティリティーというのを使うんだそうです。iPhone Labさんの「iPhone 3Gでユーザー証明書を利用してみる」にかなり詳しく書かれていたので、これを参考に自分もやってみました。iPhone LabさんではMac OSでやっていますが、自分のはWindowsなので若干手順が違います。
まずはiPhone構成ユーティリティーのWindows版をAppleのサイトからダウンロードしインストールします。
クライアント証明書インストールの構成をする際には、(Windowsを母艦にして行う場合)自分の証明書がWindowsの個人証明書ストアに入っている必要があります。(PKCS#12(.pfx)ファイルを持っているだけではだめです。)事前に準備しておきます。
構成ユーティリティーを起動し、左側ペインの「構成プロファイル」を選択し上の「新規」ボタンを押し、「一般」を選び、プロファイルに名前を適当につけます。
・名前
・識別子 (ドメイン名みたいなもん)
・組織 (構成プロファイルを発行する組織。オレ様ですね。)
を入力しておきます。
クライアント証明書のインストールには「資格情報」を選び、「構成」のボタンを押します。
Windows証明書ストアの個人ストアから自分がiPhoneで使いたい証明書(と鍵)を一つ選びます。(ここでは余分な自分が秘密鍵を持っているわけもないルート証明書なんかも選択できてしまいます。選ぶのが大変なので辞めて欲しいです。)
iPhoneでインポートする際に求められるパスワードを設定します。
無事設定できました。ファイルを書き出すために上の方の「書き出す」ボタンを押します。
構成プロファイルには署名することができるそうです。署名が好きなのでw迷わず署名します。
これで、無事構成ファイルができました。拡張子は ".mobileconfig" というファイルになります。
これをメールに添付してiPhoneに送ります。するとiPhoneでは"You got a mail!"します。

先ほどのファイルが添付されているのでコレを開きます。

こんな風な設定画面が表示されるので、「インストール」のボタンを押します。

先ほど設定されたパスワードを入力すると、無事クライアント証明書がインストールされました。

接続確認のため、iPhoneのブラウザSafariで、この証明書(と鍵)でSSLクライアント認証するウェブサイトに接続してみたところ、ちゃんと接続できました。
この証明書はS/MIME証明書にもなるんですが、ちょっと探してみたところ、iPhoneではS/MIME対応のメーラーが無いようなんです。とても残念。見つけたら試してみたいと思います。
さて、先ほど生成した構成プロファイルですが、ファイルを見てみたところ内包署名のPKCS#7署名データになっていました。署名は"uniqueIdentifier=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, CN=iPCU CA XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"のような識別名の自己署名証明書でやっていました。
署名対象データを取り出してみるとPKCS#12秘密鍵ストアをBase64エンコーディングして格納してちょっと属性をつけたXMLファイルになっていました。
<plist>
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadContent</key>
<data>Base64形式のPKCS#12秘密鍵ストア</data>
<key>PayloadDescription</key>
<string>Provides device authentication (certificate or identity).</string>
<key>PayloadType</key>
<string>com.apple.security.pkcs12</string>
・・・略・・・
</dict>
</array>
・・・略・・・
</dict>
</plist>
dictの構造がXML的でなく気持ち悪く、なんとなくPDFのディクショナリに近いものを感じてしまうのは私だけでしょうか、、、
iPhoneで証明書をインストールして、
HTTPS接続してあるサイトをみようとしているのですが、
エラーが表示されます。
表示されない何か理由があるのでしょうか?
下記は、OK Waveに質問した内容です。
iPhoneでクライアント証明書を使用して、IISのサーバーに接続できません。
iPhone構成ユーティリティを使用して、証明書に自己署名をして、
メールでiPhoneに送付し、検証済みの証明書をインストールしました。
サイトにアクセスして、インストールした証明書を選択するのですが、
「このページにはクライアント証明書が必要です。」
HTTPエラー403.7 アクセスは許可されていません
と表示されます。
もう少しでアクセスできそうなのですが、