単一の 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 ホストでは、リクエストがホスト ヘッダーに基づいてルーティングされるためにこれが必要です。