■AndroidのChromeでエラーにならないローカルIPアドレスのオレオレ証明書を作る手順
●目的
・Android上のChromeで、ローカルIPアドレスのWebサーバーをhttpsで開けるように。
・普通にオレオレ証明書作ると、Chromeで警告が出る
・Chrome用の証明書作る手順だと、Androidでインポートできないので、CA=TRUEにする
●参考
Chromeで使えるオレオレ証明書を作成する方法
https://qiita.com/t-kuni/items/d3d72f429273cf0ee31e
Abroid端末でオレオレ証明書がインポートされない!?
https://solo-ware.com/2019/09/06/abroid%E7%AB%AF%E6%9C%AB%E3%81%A7%E3%82%AA%E3%83%AC%E3%82%AA%E3%83%AC%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%8C%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%EF%BC%81/
●今回の環境
サーバーのIPアドレス: 192.168.0.100
●適当なlinux上で鍵を作成
openssl genrsa 2048 > server.key
openssl req -new -key server.key -subj “/C=JP/ST=Some-State/O=Some-Org/CN=192.168.0.100” > server.csr
vi subjectnames.txt
—
[ SAN ]
subjectAltName = IP:192.168.0.100
basicConstraints=CA:TRUE
—
openssl x509 -days 825 -req -sha256 -in server.csr -signkey server.key -extfile subjectnames.txt -extensions SAN -out server.crt
※ここで825日にしているのは、MacOSXのChromeで NET::ERR_CERT_REVOKED となってしまう問題があるという記事があったので。
もしかしたらAndroidだと36500日でも大丈夫かも?
https://qiita.com/ll_kuma_ll/items/13c962a6a74874af39c6#20191218-%E8%BF%BD%E8%A8%98
内容を確認
openssl x509 -in server.crt -text -noout
こんな感じになってればOK。
—
(省略)
Subject: C=JP, ST=Some-State, O=Some-Org, CN=192.168.0.100
(省略)
X509v3 extensions:
X509v3 Subject Alternative Name:
IP Address:192.168.0.100
X509v3 Basic Constraints:
CA:TRUE
—
●Apache
証明書ファイルを適切な場所に配置
サービスを一旦終了して、起動すること(再起動だとダメかも)
●Android
なんとかしてAndroid上に「server.crt」ファイルをコピー。
そいつをファイラーか何かでタップすると、証明書のインストール画面になる。
PINかパターンの入力
証明書の名前を指定する
証明署名: 適当な名前
認証情報の使用: VPNとアプリ
パッケージの内容: CA証明書1件 ←これがユーザー証明書とかになってないこと
-> OK
「適当な名前」はインストールされています と表示される。
信頼できる認証情報
-> ユーザー に、Some-Org 192.168.0.100 と追加されたことを確認
※これがなかなか出てこない!!原因分からない。すごく待ったほうがいいかも。
●確認
全部終わったら、IPアドレスのURLでも、httpsで鍵マークついて正規のhttpsサイトと何ら変わらず表示できるようになる。