背景
自分しか使わないけどhttp経由で家以外でも見たい、というケースがたまにありクライアント認証を挟むようにしています。
そしてiPhoneにクライアント証明書を入れたくなり、毎回忘れて調べているので記事としてまとめます。
作業はmacOS前提です。
方法
まず以下の手順でkeyとcertを用意し、p12ファイルを作成します。
openssl genrsa -out client.key 2048 openssl req -new -key client.key -out client.csr -subj '/CN=example.app' openssl x509 -in client.csr -out client-ca.crt -req -signkey client.key -days 3650 # パスワードを要求されますが、後の手順で使うので覚えておいてください openssl pkcs12 -export -inkey client.key -in client-ca.crt -out mobile-client.p12 -name "Example Client Certificate"
次に以下のアプリを入れます。
apps.apple.comアプリを開いたらCmd+Nで新規プロファイルを作成し、証明書を選択し先程作成したp12ファイルを選択します。
パスワードはp12ファイルを生成するときに指定したものを入力してください。
Cmd+Sで名前を付けて保存してください(e.g. client-cert.mobileconfig)。
作成されたmobileconfigを渡す方法は一旦Apple Configurator2を閉じ、デバイスをmacに繋ぎます。
PCを信頼するか聞いてくるので信頼しておいてください。
その後、Apple Configurator2を開くと自分のデバイスが出ていると思うので選択し、画像左上の方にある追加でプロファイルを選びます。
finderが開くので先程生成したmobileconfigファイルを選択するとiPhoneにプロファイルが転送されます。
iPhone側では一般->プロファイルの欄でダウンロード済みプロファイルの欄にプロファイル情報が表示されています。
そのプロファイルをタップしてインストールをするとクライアント証明書として利用可能になります。
クライアント証明書が必要なサイトをPCからChromeで閲覧しようとすると証明書の選択というのが出ますが、iPhoneのSafariはそういう表示は出ません。
証明書が適切に選択されていればそのままWebサイトを開くことができます。