見出し画像

自己証明書(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にアクセスします。

xamppコントロールパネル
httpsでアクセスした結果(OK)

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

保護されていない通信(NG)

おわりに

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

いいなと思ったら応援しよう!