- Windows
-
2025-07-08
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
に下記を追加します。
DocumentRoot
や ServerName
は適宜変更してください。
<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
が作成されました。
証明書のインストール
作成した証明書ファイルをインストールします。
-
作成した
my-server.crt
をダブルクリック
[証明書のインストール]をクリック
-
そのまま[次へ]をクリック
-
[証明書をすべて次のストアへ配置する]を選択
[参照]をクリックし[信頼されたルート証明機関]を選択します。
-
内容を確認して[完了]ボタンをクリック
-
セキュリティ警告が表示されたら[はい]をクリックしてインストール完了
動作確認
Apacheとブラウザを再起動して、https://localhostへアクセスしてください。
警告が表示されずページが表示できていれば成功です。
この記事がお役に立ちましたらシェアお願いします

3 views