この記事を書いた動機

 最近、個人的に自分用の Web アプリみたいなのを作っている過程において、スマホ上の Firefox でそのサービスにアクセスしたとき、https の認証局エラーが出てしまうということがあった。それで、認証局の設定自体は、Android OS 側にすでにその時点でしていたものの、反映されていないことに気づく。

 調べてみると、分かりずらそうな設定が必要そうだったため、一応備忘録的に何か書き残しておこうと思ったわけである。ちなみに、Google Chrome では OS 側のインストールした認証局をデフォルトで使ってくれるようなので、証明局をインストールしたらそれ以上の特別な操作はいらないようである。

環境や必要なものとか

  • Android 14

  • Pixel 5a (5G)

  • mkcert を使っている

  • 事前に何かしらの方法でスマホにファイル転送し Web サーバの証明書を送ることができる

  • Webサーバの証明書 (rootCA.cer みたいなやつ)

    # 証明書の中身のイメージ
    -----BEGIN CERTIFICATE-----
    MIIEfjCCAuagAwIBAgIRAMVjx+WAxkODxA9i82cg1f8wDQYJKoZIhv...
    ...
    何かしらのデータ
    ...
    VzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMRYwFAYDVQ...
    -----END CERTIFICATE-----
    

    https通信をプライベートネットワークで使いたいも参照するといいかも?

作業する前の状態

 以下のように証明書のエラーを無視すれば、とりあえず Web ページは開けるが気持ち悪いことになる。

設定前の状態/
設定前の状態1/
設定前の状態2/
設定前の状態3/

やり方

認証局のインストール

 まずは Android OS 側に https 通信時などに参照される証明書ストアなるものが搭載されているので、そこへ自分ででっち上げた証明書をインストールする。

  1. “セキュリティとプライバシー"の項目を開く

  2. “その他のセキュリティとプライバシー"の項目を開く

  3. “暗号化と認証情報"の項目を開く

    CA認証局の証明書インストール/
    CA認証局の証明書インストール1/
    CA認証局の証明書インストール2/

  4. “証明書のインストール"の項目を開く

  5. “CA証明書"の項目を開く

  6. “インストール"を選び、事前に用意した証明書を入れる

    CA認証局の証明書インストール3/
    CA認証局の証明書インストール4/
    CA認証局の証明書インストール5/

隠された設定を有効にする

 次に、Firefox Android 側でインストールした証明書を使う様に設定する。その過程で、まずは開発者モードみたいなのを有効にする必要がある。

  1. 通常どうりに Firefox の設定を開く

  2. 一番下までスクロールする

  3. “Firefoxについて” を開く

    通常の設定を開く/
    設定を一番下までスクロール/
    'Firefoxについて' を開く/

  4. Firefoxのアイコンを、以下のように開発者モードが有効になるまでタップし続ける

  5. 開発者モードが有効になった旨のポップアップが出てくる

    開発者モードを有効化/
    開発者モードが有効になったことを確認/

サードパーティーの証明書を有効化

 次に、設定画面に戻り、開発者設定を開く。

  1. 新たに出現した開発者モードの項目のうち、“Secret Settings” という項目を開く
  2. “Use thired party CA certificates” の項目を有効にする
    開発者モードの設定項目(Secret Settings)を開く/
    開発者モードの設定項目(Use thired party CA certificates)を有効化/

動くようになる

 最終的に以下のようになり、https の証明書エラーが出て来なければ成功していると思われる。

証明書の設定後の成功例/

参考にしたサイト