Android11以降では、自己署名証明書を入れようとしたら、下の画像のように「証明書をインストールするには、秘密鍵が必要です」と出てインストールできません。
プライベート認証局(オレオレ認証局)の証明書作成時に、本記事で説明の設定が必要です。
証明書作成で、CA証明書を作成する際に、証明書の詳細で X509v3 Basic Constraints: CA:TRUE となるように設定が必要です。
例えば、以下のようにしてCA証明書・サーバー証明書を作成します。CA証明書作成時に、basicConstraints の CAフラグが true となるようにしています。
(basicConstraints=CA:true を記述したファイルを、CA証明書作成時に -extfile で指定します)
echo 'basicConstraints=CA:true' > android_options.txt
openssl genrsa 2048 > ca.key
openssl req -utf8 -new -key ca.key -out ca.csr
openssl x509 -in ca.csr -out ca.crt -req -signkey ca.key -days 3650 -sha256 -extfile ./android_options.txt
openssl genrsa 2048 > server.key
openssl rsa -in server.key -out server.key
openssl req -utf8 -new -key server.key -out server.csr
openssl x509 -in server.csr -out server.crt -req -CA ca.crt -CAkey ca.key -days 3650 -sha256 -CAcreateserial
あとは、上記で作成されたCA証明書(ca.crt)を、Androidスマホに持って行ってインストールします。
インストールは、Android13では設定-セキュリティ-セキュリティの詳細設定-暗号化と認証情報-証明書のインストール-CA証明書 から行います。
コメント