XAMPPのApacheでSSLを有効にする方法

2026年 9月15日 Posted 野々瀨(フロントエンドエンジニア)

ローカルなどのXAMPP環境で、Apacheの初期の状態ではSSLが有効になっておらず、HTTPSによる接続ができません。そこで今回は、XAMPPのApacheに対してSSLを有効にする方法をご紹介しようと思います。

記事の説明環境

1. 古い証明書の削除(ある場合)

既に該当のドメインの証明書がインストールされていて、古い有効期限のものがある場合は削除を行います。

Windowsの設定画面を開き、検索入力欄に「証明書」などを入力し、ヒットした「ユーザー証明書の管理」を押して開きます。

右側のツリーから「信頼されたルート証明機関」の下にある「証明書」を開きます。左側の証明書の一覧から該当のドメインを右クリックしてコンテキストメニューを開き、「削除」を押します。

本当に削除してよいかどうかの質問ダイアログが表示されるので、「はい」を押します。

再度削除する内容を聞かれるので、「はい」を押します。

これで古い証明書の削除は完了です。

2. PHPのOpenSSLの有効化(必要がある場合のみ)

PHPの設定でOpenSSLを有効にします。「C:\xampp\php\php.ini」ファイルを開き、extension=opensslまたはextension=php_openssl.dllのコメントアウトを外します。

- ; extension=openssl
+ extension=openssl

筆者の環境では対象のモジュールは「openssl」でしたが、(おそらく)古いPHPのバージョンだと「php_openssl.dll」となります。

- ; extension=php_openssl.dll
+ extension=php_openssl.dll

サーバーを再起動します。

ブラウザーからphpinfo();でモジュールが有効になっていることを確認します。初期では「http://localhost/dashboard/phpinfo.php」で確認することができると思います。

3. 設定拡張ファイルの準備

XAMPPのインストールディレクトリーにある「apache\conf\openssl.cnf」ファイルを複製します。複製したファイル名についてはここでは仮に「openssl-san.cnf」とします。

複製したファイルを開き、末尾に次を追記して保存します。

[ SAN ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = localhost
DNS.2 = test.localhost

alt_namesセクションのDNS.番号にSSLを有効にしたいドメインを追加していきます。この例では「localhost」と「test.localhost」を対象にしています。

4. 証明書の発行

Linuxコンソールを起動し、コマンドラインで複製した設定拡張ファイルまでのディレクトリーへ移動します。

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=test" \
-reqexts    SAN \
-extensions SAN \
-config     openssl-san.cnf \
-days       3650

各オプションについては次のとおりです。

オプション説明
-newkey 暗号の種類です。
-keyout 秘密鍵の保存先ファイルパスです。
-x509 X.509証明書であることを表します。
-nodes パスフレーズを付けなくします。
-out 証明書の保存先ファイルパスです。
-subj 証明書のユーザーです。ここでは適当なダミーの名前を指定します。
-reqexts -configで指定した設定ファイルの中にある参照するセクション名です。多くは-extensionsと同じ指定をします。
-extensions -configで指定した設定ファイルの中にある参照するセクション名です。多くは-reqextsと同じ指定をします。
-config 複製・編集したopenssl.cnfのファイルパスを指定します。
-days 有効期限です。日数で指定します。(3,650…… およそ10年)

5. 証明書のインストール

発行した証明書をインストールします。-outオプションで指定したファイルを右クリックし、コンテキストメニューから「証明書のインストール」を押します(表示されない場合はShiftキーを押しながら右クリックすると、全てのコンテキストメニューが表示されます)。

「保存場所」を「現在のユーザー」にチェックを入れ、「次へ」ボタンを押します。

「証明書をすべて次のストアに配置する」にチェックを入れ、「証明書ストア」の「参照」ボタンを押します。

ストアの一覧から「信頼されたルート証明機関」を選択し、「OK」ボタンを押します。

「証明書ストア」の入力欄に「信頼されたルート証明機関」が表示されたら「次へ」ボタンを押します。

最終確認画面が表示されますので、内容を確認し「完了」ボタンを押します。

セキュリティ警告ダイアログが表示される場合は、「はい」ボタンを押します。

「正しくインポートされました。」とメッセージダイアログが表示されたら「OK」ボタンを押してインストール完了です。

6. Apacheの各ドメイン

XAMPPのインストールディレクトリーにある「apache\conf\extra\httpd-ssl.conf」ファイルを開き、SSLにしたい環境を追記します。

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

    <Directory "C:/web/test/public_html">
        Options Indexes FollowSymLinks MultiViews ExecCGI Includes
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

SSLEngineディレクティブをonにすることでSSLを有効にします。SSLCertificateFileディレクティブに証明書のファイルパスを指定します。SSLCertificateKeyFileディレクティブに秘密鍵のファイルパスを指定します。

Apacheを再起動すれば完了です。

7. ブラウザーで動作確認

ブラウザーを起動し、httpsでの接続を確認します。正しく表示されれば無事SSL対応が完了です。