長年 Android を使っていたんですが、最近 iPhone にしまして。
cybozu.com にリモートからアクセスする際、クライアント証明書で認証する「セキュアアクセス」という機能があるのですが、Safari で使うには証明書を読み込ませておかねばなりません。
Android では PKCS#12 形式のファイルを選択するだけで読み込めたのですが、iPhone だとユーザーインタフェースがないのですね。 調べてみると、会社の iPhone をまとめて設定するために使う「構成プロファイル」という機能があり、この一機能でクライアント証明書を設定できるようです。
構成プロファイルは .mobileconfig
という拡張子の XML ファイルで、以下のように自作できます。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Inc//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadUUID</key> <string>Ignored</string> <key>PayloadType</key> <string>Configuration</string> <key>PayloadIdentifier</key> <string>Ignored</string> <key>PayloadContent</key> <array> <dict> <key>PayloadContent</key> <data> (Base64 形式の証明書データ) </data> <key>PayloadDescription</key> <string>Provides client certificate for cybozu.com</string> <key>PayloadUUID</key> <string>4b3bc45a-796d-4349-9ee6-bbd95d3424c8</string> <key>PayloadType</key> <string>com.apple.security.pkcs12</string> <key>PayloadDisplayName</key> <string>yourdomain.s.cybozu.com</string> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadOrganization</key> <string>Cybozu, Inc.</string> <key>PayloadIdentifier</key> <string>com.cybozu.s.yourdomain</string> </dict> </array> </dict> </plist>
(Base64 形式の証明書データ)は PKCS#12 形式のファイル(.pfx)を以下のように Base64 に変換した文字列です。
base64 -w 52 mycert.pfx
PayloadDisplayName
, PayloadUUID
や PayloadIdentifier
は適宜変更してください。
作成した XML に .mobileconfig
拡張子で名前を付けて、メールで送ります。
メールを iOS 付属のメールアプリで開けば、構成プロファイルとして読み込むことができます。
Have fun!