カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

XAMPP for WindowsでSSLを有効化

XAMPPでSSLを有効にしてhttpsで通信できるようにしてみます。

環境

Windows 10
XAMPP 8.2.12

事前準備

Gitがインストール済でGit Bashが使えるものとします。
Git 公式サイト

PHP設定

PHP設定ファイル C:\xampp\php\php.ini でOpenSSLが有効になっているか確認
コメントアウトされていたら解除してください。

extension=php_openssl.dll

apacheのSSL設定

C:\xampp\apache\conf\extra\httpd-ssl.confに下記を追加します。
DocumentRootServerName は適宜変更してください。

<VirtualHost *:443>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/my-server.crt"
    SSLCertificateKeyFile "conf/ssl.key/my-server.key"
</VirtualHost>

動作確認

ここまでの段階で、https://localhostにアクセスすれば、警告は表示されますが強制的にページを表示させることができます。
しかし警告が出たままだと気持ち悪いので証明書を作成して警告が出ないようにします。

OpenSSLの設定

C:\xampp\apache\conf\openssl.cnf をコピーし、ファイル名を openssl-san.cnf に変更します。

以下の内容を追記します。

[ SAN ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = localhost
DNS.2 = {他に認証したいドメインがある場合}

証明書作成

Git BashでSSL証明書を作成します。

cd /c/xampp/apache/conf
openssl req -newkey rsa:4096 -keyout ssl.key/my-server.key -x509 -nodes -out ssl.crt/my-server.crt -subj "//CN=localhost" -reqexts SAN -extensions SAN -config openssl-san.cnf -days 3650

PowerShellで行う場合は以下のようになります。

cd C:\xampp\apache\conf
openssl req -newkey rsa:4096 -keyout ssl.key/my-server.key -x509 -nodes -out ssl.crt/my-server.crt -subj "/CN=localhost" -reqexts SAN -extensions SAN -config openssl-san.cnf -days 3650

これで秘密鍵ファイル:my-server.keyと証明書ファイル:my-server.crtが作成されました。

証明書のインストール

作成した証明書ファイルをインストールします。

  1. 作成したmy-server.crt をダブルクリック
    [証明書のインストール]をクリック
  2. そのまま[次へ]をクリック
  3. [証明書をすべて次のストアへ配置する]を選択
    [参照]をクリックし[信頼されたルート証明機関]を選択します。
  4. 内容を確認して[完了]ボタンをクリック
  5. セキュリティ警告が表示されたら[はい]をクリックしてインストール完了

動作確認

Apacheとブラウザを再起動して、https://localhostへアクセスしてください。
警告が表示されずページが表示できていれば成功です。

この記事がお役に立ちましたらシェアお願いします
17 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事