2026年8月26日

2026年8月26日

Apacheのバーチャルホストで異なるSSL証明書を使う方法

はじめに

この記事では、Apacheのバーチャルホストを使用して異なるドメインに対してそれぞれ異なるSSL証明書を設定する方法について解説します。複数のウェブサイトを持つ場合や、特定のサイトに強力なセキュリティが必要な場合は、個別のSSL証明書を用意することが推奨されます。

症状・背景

  • ドメインごとに異なる SSL 証明書を使用する必要がある。
  • Apache のバーチャルホスト設定で複数の SSL 証明書を同時に使用する方法を知りたい。
  • セキュリティ要件が異なる複数のウェブサイトを管理する。

手順・設定方法

ステップ1: SSL 証明書と鍵ファイルの配置

まず、各ドメイン用に SSL 証明書とその対応する鍵ファイルを適切な場所に配置します。

# 例として /etc/ssl/certs ディレクトリを使用
sudo mkdir -p /etc/ssl/certs/domain1.com /etc/ssl/certs/domain2.com

# SSL 証明書と鍵ファイルをそれぞれのディレクトリ内に配置します。
# ここでは、domain1.com の証明書と鍵ファイルは domain1.crt および domain1.key として保存
sudo cp /path/to/domain1.crt /etc/ssl/certs/domain1.com/
sudo cp /path/to/domain1.key /etc/ssl/certs/domain1.com/

# 同様に、domain2.com の証明書と鍵ファイルはそれぞれ domain2.crt および domain2.key として保存
sudo cp /path/to/domain2.crt /etc/ssl/certs/domain2.com/
sudo cp /path/to/domain2.key /etc/ssl/certs/domain2.com/

ステップ2: Apache 設定ファイルの編集

次に、Apache の設定ファイルを編集して各バーチャルホストで異なる SSL 証明書を使用できるようにします。

# /etc/apache2/sites-available に新しい仮想ホスト設定ファイルを作成します。
sudo nano /etc/apache2/sites-available/domain1.com-le-ssl.conf

# ファイル内に以下の内容を追加します。
<VirtualHost *:443>
    ServerName domain1.com
    DocumentRoot /var/www/html/domain1.com/public_html/

    SSLCertificateFile /etc/ssl/certs/domain1.com/domain1.crt
    SSLCertificateKeyFile /etc/ssl/certs/domain1.com/domain1.key

    # セキュリティ設定や他の必要なオプションを追加する場合があります。
</VirtualHost>

# 同様に、domain2.com 用の設定ファイルを作成します。
sudo nano /etc/apache2/sites-available/domain2.com-le-ssl.conf

# ファイル内に以下の内容を追加します。
<VirtualHost *:443>
    ServerName domain2.com
    DocumentRoot /var/www/html/domain2.com/public_html/

    SSLCertificateFile /etc/ssl/certs/domain2.com/domain2.crt
    SSLCertificateKeyFile /etc/ssl/certs/domain2.com/domain2.key

    # セキュリティ設定や他の必要なオプションを追加する場合があります。
</VirtualHost>

ステップ3: 設定ファイルの有効化

各仮想ホスト設定ファイルが正しく保存されたら、Apache のサービスを再起動して新しい設定を読み込みます。

# 仮想ホスト設定ファイルを有効化します。
sudo a2ensite domain1.com-le-ssl.conf
sudo a2ensite domain2.com-le-ssl.conf

# Apache を再起動します。
sudo systemctl restart apache2

ステップ4: 実践/トラブルシュート/監視

設定が正しく適用されたことを確認するために、各ドメインの HTTPS へのアクセスを試みます。また、Apache のログファイルをチェックしてエラーメッセージがないことを確認します。

# Apache のエラーとアクセスログを確認します。
sudo tail -f /var/log/apache2/error.log
sudo tail -f /var/log/apache2/access.log

注意事項

  • 証明書の有効期限は定期的にチェックし、更新が必要な場合は適切に対応してください。
  • セキュリティ上重要な設定項目を正しく設定すること。例えば、強力な暗号化方法を使用する等。
  • 配置された証明書と鍵ファイルをセキュアに管理してください。

まとめ

1. SSL 証明書の配置: 各ドメイン用の SSL 証明書とその鍵ファイルを適切な場所に配置します。

2. 設定ファイルの編集: Apache の設定ファイルを編集して各バーチャルホストで異なる SSL 証明書を使用できるようにします。

3. 設定ファイルの有効化: 仮想ホスト設定ファイルを有効化し、Apache を再起動します。

4. 実践と監視: 各ドメインの HTTPS アクセスを確認し、ログをチェックして問題がないことを確認します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ