はじめに
前回、外部端末からアクセス可能な HTTPS テスト環境の構築を行いました。
プライベートネットワークに接続されている iPhone からアクセスし、警告画面が表示されることなく、サイト画面が表示されることを確認しました。
また、Secure Context を必要とする OPFS も利用できることから、ブラウザから Secure Context として扱われていることも確認できました。
今回は、スマホとして iPhone と双璧をなす Android 端末にも同様の設定を行い、その違いをみながら、動作確認を行っていきます。
使用する端末は、Google Pixel 6a(Android 17)です。
※ Android は、メーカーや機種、 OS のバージョンによって、設定メニューなどに違いがあります。そのため、本手順を試す場合は、対象となる端末に合わせた対応をお願いします。
本記事は、「開発環境について/外部アクセス対応のHTTPSテスト環境の構築」により、パソコン側の設定が完了していることを前提とし、Android 側の設定のみを記載します。
使用するパソコン側の IP アドレス( 192.168.10.108 )やポート番号( 3000 )も変更ありません。
ルート認証局(CA)の証明書も HTTPS テスト環境のサーバーからダウンロードする方法で行います。
※ Android端末へ転送するのは rootCA.pem のみです。認証局の秘密鍵である rootCA-key.pem は、絶対に転送・公開しないでください。
※ ルート認証局(CA)の証明書を HTTP / HTTPS サーバーから取得する方法は、自分が管理している開発用プライベートネットワーク内に限定した方が安全です。ダウンロード後は、すみやかに、ルート認証局(CA)の証明書を public フォルダーから削除することをおすすめします。
iPhone と Android のルート認証局(CA)の証明書の設定方法の違い
下記に、iPhone と Android での違いを示します。
| iPhone | Android | |
|---|---|---|
| root CA | rootCA.pem | rootCA.pem |
| 端末への転送 | 必要 | 必要 |
| プロファイル | インストールする | 基本的には不要 |
| CA登録 | プロファイルをインストール | 「CA 証明書」としてインストール |
| Chromeでの確認 | 別途「証明書信頼設定」を有効化 | CA証明書のインストールで警告が消失(今回の環境) |
| ブラウザ | Chromeなど | Chromeなど |
前回使用した iPhone では、「インストール」と「信頼」の2段階での設定が必要だったのに対し、今回使用した Google Pixel 6a(Android 17)の Chrome では、rootCA.pem を「CA証明書」としてインストールすることで、HTTPS接続時の警告表示がなくなりました。
ただし、Androidではユーザーが追加したCA証明書をすべてのアプリが自動的に信頼するわけではありません。アプリによっては、ユーザー追加CAを信頼するための設定が別途必要になる場合があります。
※ 以下は、筆者が使用した Google Pixel 6a(Android 17)で確認した手順です。 Android のバージョンや機種によって、設定項目の名称や階層が異なる場合があります。
1. スマホ( Google Pixel 6a (Android17) )でのルート認証局(CA)の証明書の受取
スマホから HTTPS サーバーにアクセスしてルート認証局(CA)の証明書を取得します。
※ 本記事では、ブラウザに Chrome を使用しています。
ブラウザを立ち上げ、URL 欄に 以下を入力:
https://192.168.10.108:3000/rootCA.pem
1-1. 警告画面の表示
警告画面が表示されます。画面下部の「詳細設定」をタップします。
※ 本記事のスクリーンショットでは、操作する箇所を朱色の円で囲んで示しています。
1-2. 新たな警告画面の表示
新たな警告画面が表示されます。画面中央の「192.168.10.108にアクセスする(安全ではありません)」をタップします。
1-3. 証明書インストーラーで開く
画面下部に開くアプリを選択する旨のメッセージが表示されるので、証明書インストーラーが選択されていることを確認し、「1回のみ」をタップします。
1-4. 「設定」アプリでの証明書インストールを促すメッセージの確認
表示されるポップアップで「閉じる」をタップします。
※ 少しわかりづらいですが、ここまでで、ダウンロードフォルダーにルート認証局(CA)の証明書がダウンロードされています。
2. スマホ( Google Pixel 6a (Android17) )でのルート認証局(CA)の証明書の登録
2-1. セキュリティとプライバシー設定画面を開く
Android の設定アプリをタップして立ち上げ、表示された画面を下方向にスクロールし、「セキュリティとプライバシー」を見つけてタップします。
2-2. 高度な保護機能設定画面を開く
表示された「セキュリティとプライバシー」設定画面を下方向にスクロールし、「高度な保護機能」を見つけてタップします。
2-3. 暗号化と認証情報設定画面を開く
表示された「高度な保護機能」設定画面の「暗号化と認証情報」をタップします。
2-4. 証明書をインストール設定画面を開く
表示された「暗号化と認証情報」設定画面の「証明書をインストール」をタップします。
2-5. CA 証明書設定画面を開く
表示された「証明書をインストール」設定画面の「CA 証明書」をタップします。
2-6. CA 証明書のインストール
表示された「CA 証明書」設定画面の「インストールする」をタップします。
※ この際、本人確認が求められます。確認を完了させ、先に進んでください。
2-7. CA 証明書の選択
表示されている CA 証明書が、今回ダウンロードした mkcert のルート CA であることを確認し、タップします。
2-8. CA 証明書の登録完了
画面が戻り、CA 証明書インストール完了のメッセージが表示されることを確認し、設定アプリを終了します。
3. ブラウザで警告画面と警告表示が表示されないことの確認
ブラウザにもどり、URL 欄に 以下を入力:
https://192.168.10.108:3000/
警告画面や警告表示がなく、サイトの画面が表示されることを確認できます。
※ iPhone の時とは異なり、筆者の環境では、特に新しいタブで開かなくても、警告表示が消えないということはありませんでした。
iPhone の場合と同様に、今回のアクセス先は localhost ではなく 192.168.10.108 ですが、ブラウザから Secure Context として扱われているため、Secure Context を必要とする OPFS も利用できます。
※ 使い方については、「データ保存技術/OPFS の動作確認(非同期操作)」を参照してください。