- Windows
-
2025-07-08 - 更新:2025-07-09
ローカル開発環境の 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 に証明書を登録する
作成した証明書ファイルをインストールします。
-
my-server.crt
をダブルクリック
[証明書のインストール]をクリック
-
そのまま[次へ]をクリック
-
[証明書をすべて次のストアへ配置する]を選択
[参照]で[信頼されたルート証明機関]を選択します。
-
内容を確認して[完了]ボタンをクリック
-
セキュリティ警告が表示されたら[はい]をクリックしてインストール完了
動作確認
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
ServerName
やServerAlias
も追記
- PHPMyAdmin や Laravel Mix など、HTTPS が必須なツールとの連携が容易になります
まとめ
XAMPP のローカル環境でも、自分で生成した SSL 証明書を利用すれば、商用に近い HTTPS テストが可能です。
開発効率やセキュリティ面での確認に非常に役立つため、ぜひご活用ください。
