複数の IP アドレスを使用して複数の Apache SSL サイトを設定する方法

複数の IP アドレスを使用して複数の Apache SSL サイトを設定する方法

単一の Apache2 構成で、それぞれ独自の IP アドレスで複数の HTTPS サイトをホストするにはどうすればよいでしょうか。単一の IP アドレスに複数の HTTP サイトが存在する場合もあります。

使いたくないサーバー名表示 (SNI)説明どおりここ、そして私が関心があるのは重要なトップレベルの Apache ディレクティブだけです。つまり、設定がどのようになるかの大まかな概要を知るだけでよいのです。

基本的な設定は次のようになります。

Hosted on 1.1.1.1:80 (HTTP)
  - example.com
  - example.net
  - example.org
Hosted on 2.2.2.2:443 (HTTPS)
  - secure.com
Hosted on 3.3.3.3:443 (HTTPS)
  - secure.net
Hosted on 4.4.4.4:443 (HTTPS)
  - secure.org

そして、ここに私がこれまでに作成した重要な構成ディレクティブがあります。これは、動作する反復に最も近いものですが、まだダメです。近づいていることはわかっていますが、正しい方向に少し押し進める必要があります。

Listen 1.1.1.1:80
Listen 2.2.2.2:443
Listen 3.3.3.3:443
Listen 4.4.4.4:443

NameVirtualHost 1.1.1.1:80
NameVirtualHost 2.2.2.2:443
NameVirtualHost 3.3.3.3:443
NameVirtualHost 4.4.4.4:443

# HTTP VIRTUAL HOSTS:

<VirtualHost 1.1.1.1:80>
    ServerName example.com
    DocumentRoot /home/foo/example.com
</VirtualHost>

<VirtualHost 1.1.1.1:80>
    ServerName example.net
    DocumentRoot /home/foo/example.net
</VirtualHost>

<VirtualHost 1.1.1.1:80>
    ServerName example.org
    DocumentRoot /home/foo/example.org
</VirtualHost>

# HTTPS VIRTUAL HOSTS:

<VirtualHost 2.2.2.2:443>
    ServerName secure.com
    DocumentRoot /home/foo/secure.com
    SSLEngine on
    SSLCertificateFile /home/foo/ssl/secure.com.crt
    SSLCertificateKeyFile /home/foo/ssl/secure.com.key
    SSLCACertificateFile /home/foo/ssl/ca.txt
</VirtualHost>

<VirtualHost 3.3.3.3:443>
    ServerName secure.net
    DocumentRoot /home/foo/secure.net
    SSLEngine on
    SSLCertificateFile /home/foo/ssl/secure.net.crt
    SSLCertificateKeyFile /home/foo/ssl/secure.net.key
    SSLCACertificateFile /home/foo/ssl/ca.txt
</VirtualHost>

<VirtualHost 4.4.4.4:443>
    ServerName secure.org
    DocumentRoot /home/foo/secure.org
    SSLEngine on
    SSLCertificateFile /home/foo/ssl/secure.org.crt
    SSLCertificateKeyFile /home/foo/ssl/secure.org.key
    SSLCACertificateFile /home/foo/ssl/ca.txt
</VirtualHost>

私としては、SSL サイトの 1 つをプライマリ VHOST IP に含めるのではなく、各 SSL サイトに独自の IP を割り当てることを好みます。標準的な設定を示すリンクがあれば、ぜひ教えてください。

答え1

Apache を再起動します。リロードしないでください。新しく構成された SSL 証明書はリロード時にロードされません。

ディレクティブを削除しますNameVirtualHost ...:443。SNI を実行する場合にのみ必要になります。

はい、NameVirtualHost 1.1.1.1:80ディレクティブは保持してください。ポート 80 ホストでは、リクエストがホスト ヘッダーに基づいてルーティングされるためにこれが必要です。

関連情報