
4 つの IP ベースの仮想ホストを持つ Apache 2.2.14 を実行する Ubuntu 10.04 サーバーがあります。2 つの IP アドレスと、各 IP アドレスの SSL 証明書があります。例:
<VirtualHost 1.1.1.1:80>
<VirtualHost 1.1.1.1:443> -> SSL 1
<VirtualHost 2.2.2.2:80>
<VirtualHost 2.2.2.2:4443> -> SSL 2
何をしても、何らかの理由で、Apache は https リクエストを処理するときに、常に含まれている最初の仮想ホストを見つけますが、2 番目の仮想ホストは見つけません。その結果、Apache は両方の IP アドレスに対して含まれている最初の仮想ホストから SSL 証明書を提供します。これは非常に望ましくない結果です。
すべての IP アドレス構成は正しいです。実行すると、apache2ctl -S
すべての構成が正しいことが示されます。
名前ベースの仮想ホストは使用しません。
どの :443 vhost が最初に含まれているかは関係ありません。Apache は最初に含まれている vhost からの証明書のみを提供します。
私たちの理解では、ip アドレス:ポートの仮想ホストが見つからない場合、Apache はデフォルトで最初に見つかった仮想ホストをデフォルトとして使用するようです。
なぜこのようなことが起こるのでしょうか?
答え1
ServerName
Apache2 では、すべての に ディレクティブが必要なようです<VirtualHost>
。 2 つの SSL vhost は同じものになりServerName
、1 つが両方の IP アドレスのデフォルトになります。