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

XAMPP for Windows における SSL 有効化手順

ローカル開発環境の XAMPP に HTTPS 通信を導入するための、Windows 10/XAMPP 8.2.12 環境での手順を整理して解説します。

事前に準備するもの

  • Windows 10 環境
  • XAMPP 8.2.12
  • Git(Git Bash を利用することを想定しています)
    Git 公式サイト

PHP の OpenSSL 拡張を有効化する

PHP の設定ファイル C:\xampp\php\php.ini を開き、以下の行を見つけてコメントアウトを外します。

extension=php_openssl.dll

これにより、PHP 経由で SSL 証明書に対応できるようになります。

Apache の SSL 用 Virtual Host を設定する

Apache 設定ファイル C:\xampp\apache\conf\extra\httpd-ssl.conf を編集して、HTTPS 通信を受け入れる仮想ホストを追加します。

<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>
  • ServerName は用途に応じて変更可能です。
  • DocumentRoot のパスも実際のプロジェクトディレクトリに合わせて調整してください。

動作確認

ここまでの段階で、https://localhost にアクセスすれば、警告は表示されますが強制的にページを表示させることができます。
しかしまだ証明書を作成していないので、セキュリティ保護なしの状態でページが表示されます。

SAN 対応の OpenSSL 設定ファイルを用意する

SSLを有効化するには Subject Alternative Name(SAN)を含む証明書が必要です。
C:\xampp\apache\conf\openssl.cnf をコピーして openssl-san.cnf を作成し、以下を追記します。

[ SAN ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = localhost
DNS.2 = 任意のドメイン名を追加できる

Git Bash/PowerShell による証明書作成

Git Bash を使う場合

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

これで以下のファイルが生成されます:

  • 秘密鍵:ssl.key/my-server.key
  • 証明書:ssl.crt/my-server.crt

Windows に証明書を登録する

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

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

動作確認

Apacheとブラウザを再起動して、https://localhost へアクセスしてください。

  • 証明書エラーが出なければ成功です。
  • ブラウザのアドレスバーに鍵マークが表示され、HTTPS 接続になっていることを確認してください。

お役立ちポイントまとめ

ポイント 内容
OpenSSL モジュール有効化 PHP での SSL 処理に必須
SAN 対応の証明書 Subject Alternative Name で正式な評価が可能
ローカルにルート証明書を登録 警告なし HTTPS テスト環境が実現

応用例・カスタマイズ

  • 自作の複数ドメイン(例:myapp.local, api.local)をテスト環境に追加したい場合:
    • openssl-san.cnf[alt_names] セクションに DNS.3 = myapp.local など追加
    • Apache の VirtualHost ServerNameServerAlias も追記
  • PHPMyAdmin や Laravel Mix など、HTTPS が必須なツールとの連携が容易になります

まとめ

XAMPP のローカル環境でも、自分で生成した SSL 証明書を利用すれば、商用に近い HTTPS テストが可能です。
開発効率やセキュリティ面での確認に非常に役立つため、ぜひご活用ください。

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

コメントを残す

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

関連記事