通常、Chromeは自己署名証明書を「信頼できない証明書」と判断します。その結果、httpsによる接続は拒否されます。
しかし、自己署名証明書を「信頼できる証明書」として、Chromeへ意図的に取り込むことで、httpsによる接続が可能になります。
ただし、自己署名証明書が信頼できない点は変わりません。
ですので、パブリックなWebサーバーで、この方法を用いる事は危険です。プライベートなローカルWebサーバーのみで用いるようにして下さい。
※環境:XAMPP 8.2.12
XAMPP Control Panel Version 3.3.0.
Apache 2.4.58
OpenSSL 1.1.1p
Chrome バージョン 142.0.7444.163 (Windows版)
証明書の注意
最新のChromeは、証明対象のホストをSAN(Subject Alternative Name)で評価するようになりました。CN(Common Name)は使われません。
ですので、Chromeへ取り込む証明書は、SANを持つ必要があります。
# openssl x509 -text -in server.crt -noout Certificate: Data: Version: 3 (0x2) Serial Number: 76:8d:03:60:fa:d7:9c:0e:f0:cb:f9:df:a0:fd:bf:ba:9d:b4:19:34 Signature Algorithm: sha256WithRSAEncryption Issuer: C = JP, ST = SampleKen, L = SampleShi, O = SampleCorp, OU = SampleSect, CN = mysite.example.com, emailAddress = SampleAddr Validity Not Before: Nov 20 13:53:37 2025 GMT Not After : Nov 20 13:53:37 2026 GMT Subject: C = JP, ST = SampleKen, L = SampleShi, O = SampleCorp, OU = SampleSect, CN = mysite.example.com, emailAddress = SampleAddr Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:fa:15:e1:32:33:f5:c5:a4:92:54:14:a4:80:fe: 44:51:65:e2:d5:51:9c:0a:8e:c0:7a:fc:f9:69:e2: ... 15:07:91:b8:8a:5b:cc:fe:8d:c6:22:d8:8a:15:94: 7c:3b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Alternative Name: DNS:mysite.example.com X509v3 Basic Constraints: CA:TRUE X509v3 Subject Key Identifier: 2A:53:5F:8A:D6:87:36:C7:69:44:1B:30:34:38:CB:77:63:91:57:EB Signature Algorithm: sha256WithRSAEncryption Signature Value: ac:26:d6:d3:77:7b:69:52:75:df:f8:9b:48:de:ab:9d:f2:da: 3c:ce:16:25:42:e6:62:e9:ea:4e:e4:1e:ed:b1:1d:47:dd:92: ... fb:ba:a3:b7:82:9d:4f:17:c5:1f:ab:e6:a2:4d:a1:d1:1c:2e: b3:73:93:a8
※証明書の作成は「ローカルWebサーバーのhttps対応(XAMPP編)」を参照
証明書の取り込み
Chromeの「設定/セキュリティ」を開きます。
ちなみに、URLに「chrome://settings/security」を入力すると、直にページへ飛びます。

「証明書の管理」をクリックして、証明書マネージャーを開きます。

「自分でインストール」を開きます。

「信頼できる証明書」でインポートを行ってください。
このあと、ファイルピッカーで証明書ファイル(*.crt)を選択すれば、取り込まれます。

証明書の確認
取り込まれた証明書を確認したければ、ビューアで開くことが出来ます。

httpsアクセス
WindowsのChromeを使ってhttpsでアクセスした結果です。

※アクセスしたWebサーバーについては「ローカルWebサーバーのhttps対応(XAMPP編)」を参照
関連記事:
