
自己証明書(SSL)を作ってhttpsアクセスし「セキュリティ保護なし」にならないようにする [xampp/apache]
ここではWindows11上で試行しましたので、そのメモを残したいと思います。
ApacheでOpenSSLが有効かどうかを見る
C:\xampp\php\php.ini に以下の記述があることを確認します(私の環境では984行目)
extension=php_openssl.dll
httpd_ssl.confにSSL関連ファイル等を記載する
C:\xampp\apache\conf\extra\httpd-ssl.confを以下の通り書き換えてください。yournameのところは書き換えてくださいね。
<VirtualHost *:443>
DocumentRoot "C:/xampp/htdocs"
ServerName yourname
SSLEngine on
SSLCertificateFile "conf/ssl.crt/yourname.crt"
SSLCertificateKeyFile "conf/ssl.key/yourname.key"
</VirtualHost>
hostsを書き換える(追記する)
C:\Windows\System32\drivers\etc\hostsを書き換えます。(追記)
最下行を以下のように追記します。一旦デスクトップに保存してから、コピーするとよいでしょう。
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 yourname
証明書作成準備としてテキストファイルを作成する
次のテキストファイルを作成します。ファイル名は任意で結構です。今回はsan.txtとでもしましょう。
同ファイルはどこに置いてもよいですが、C:\xampp\apache\conf あたりに配置しておけば迷子にならないので良いと思います。DNSで書いてもIPアドレスで書いても良いようです。私は今回両方で書きました。IPアドレスはipconfigなどで調べることができます。
subjectAltName = DNS:yourname, DNS:*.yourname, IP:192.168.11.57
秘密鍵の作成
c:\xampp\apache\conf でコマンドプロンプトから以下のコマンドで秘密鍵(yourname.key)を作ります。
openssl genrsa -aes128 -out yourname.key 2048
次に以下を実行します。(パスフレーズを除くため)
openssl rsa -in yourname.key -out yourname.key
証明書署名要求の作成
c:\xampp\apache\conf でコマンドプロンプトから以下のコマンドでCSR(yourname.csr)を作ります。
openssl req -new -key yourname.key -out yourname.csr
証明書へ署名する
c:\xampp\apache\conf でコマンドプロンプトから以下のコマンドでCRT(yourname.crt)を作ります。
openssl x509 -req -days 3650 -in yourname.csr -signkey yourname.key -out yourname.crt -extfile san.txt
自己署名した証明書を配置する
c:\xampp\apache\conf にある yourname.crt をc:\xampp\apache\conf\ssl.crt\に配置します。
c:\xampp\apache\conf にある yourname.key をc:\xampp\apache\conf\ssl.key\に配置します。
自己署名した証明書をブラウザにインストールする
Google Chromeの「設定」→「プライバシーとセキュリティ」→「セキュリティ」→「証明書の管理」→「ローカル証明書」→ 「Windows からインポートした証明書を管理する」→「信頼されたルート証明機関」→「インポート」→ 「次へ」→「参照ボタンを押して yourname.crt」をインポートします。この際「証明書ストア」は「信頼されたルート証明書機関」を選んでください。
その後、以下の画面が出ますので、「次へ」を押してください。

動作確認
xampp-apacheを起動して、Chromeを再起動してhttps://yournameへアクセスしてください。私の場合、yournameがmickvfdとしており、c:\xampp\htdocs\shobo\top.html にトップページを置いているので、https://mickvfd/shobo/top.htmlにアクセスします。


ちなみにlocalhostでアクセスすると以下のようになります。

おわりに
今回は、ひろたけブログさんの SAN付きの自己署名証明書を作る【開発環境用】【ChromeでもOK】のページを参考にして試してみました。ほぼ内容は同じですが備忘録として記載しました。ありがとうございました。