40

SSL 経由のトラフィックを許可するようにサーバーをセットアップしようとしています。SSL が Name Virtual Host で機能しないことは承知していますが、専用のプライベート IP を持つ仮想マシン上にすべての Apache サーバーがあります。適切な VM にトラフィックをルーティングするための mod_proxy セットアップを持つプライマリ仮想マシンがあります。

ただし、https トラフィックをルーティングするには、VM だけでなくプロキシにも証明書をインストールする必要があります。すべてのホストで使用できるワイルドカード証明書があります。すべてが正常に動作しているように見えますが、プロキシの apache ログに次のメッセージが表示されます。

[警告] 初期化: SSL サーバーの IP/ポートの競合: host1.domain.com:443 (/etc/apache2/sites-enabled/host1:1) vs. host2.domain.com:443 (/etc/apache2/sites-有効/ホスト 2:1)

プロキシでセットアップしたホストごとに、これらのエラー メッセージのいずれかが表示されます。プロキシの仮想ホストのセットアップは以下に掲載されています。

<VirtualHost ipaddress:443>
    ServerName host1.domain.com
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass / https://privateip:443/
    ProxyPassReverse / https://privateip:443/

    SSLProxyEngine on
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key
</VirtualHost>

これを機能させる方法はありますか?

4

7 に答える 7

21

Apacheは<VirtualHost>、同じIPアドレスとポートを持つ複数のセクションがあることを警告しているようです...警告なしで機能させる限り、サーバー名表示(SNI)のようなものを使用する必要があると思います。 SSLハンドシェイクの一部として要求されたホスト名を識別します。基本的にSSLを介して名前ベースの仮想ホスティングを行うことができますが、ブラウザでどれだけサポートされているかはわかりません。SNIのようなものを除いて、基本的に、パブリックインターネットに公開するIPアドレスごとに1つのSSL対応ドメイン名に制限されています。

もちろん、Webサイトに適切にアクセスできれば、警告を無視しても問題ないでしょう。これらの特定のものはそれほど深刻ではありません-それらは主にあなたが問題を経験している場合に何を見るべきかを示しています

于 2009-02-05T20:42:27.730 に答える
7

私の知る限り、Apacheはバージョン2.2.12以降SNIをサポートしています。残念ながら、ドキュメントにはまだその変更が反映されていません。

それが完了するまで、http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNIにアクセスします

于 2010-02-15T09:16:41.283 に答える
3

次のものを置き換えることができる場合があります。

VirtualHost ipaddress:443

VirtualHost *:443

おそらく、すべての仮想ホストでこれを行う必要があります。

それはおそらくそのメッセージをクリアします。ServerName ディレクティブがメッセージ リクエストのルーティングを心配できるようにします。

繰り返しますが、同じマシンに複数の IP エイリアスがある場合、これを行うことができない場合があります。

于 2009-02-05T22:29:30.227 に答える
2

VirtualHost は次のようになります。

NameVirtualHost IP_Address:443

<VirtualHost IP_Address:443>
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/ca.crt    # Where "ca" is the name of the Certificate
    SSLCertificateKeyFile /etc/pki/tls/private/ca.key
    ServerAdmin webmaster@domain_name.com
    DocumentRoot /var/www/html
    ServerName www.domain_name.com
    ErrorLog logs/www.domain_name.com-error_log
    CustomLog logs/www.domain_name.com-access_log common
</VirtualHost>
于 2016-12-21T10:30:38.653 に答える
1

Apache は名前ベースの仮想ホストでは SSL をサポートせず、IP ベースの仮想ホストでのみサポートします。

出典: Apache 2.2 SSL FAQ の質問名前ベースの仮想ホスティングを使用して異なる SSL 仮想ホストを識別できないのはなぜですか?

SSL とは異なり、TLS 仕様は名前ベースのホスト (他の誰かが言及した SNI) を許可しますが、Apache はまだこの機能をサポートしていません。openssl 0.9.8 に対してコンパイルされると、将来のリリースでおそらくそうなるでしょう。

また、mod_gnutlsは SNI をサポートしていると主張していますが、実際に試したことはありません。

于 2009-02-12T17:31:43.817 に答える
1

まず、構成ファイルに NameVirtualHost ip:443 が必要です! おそらく最後に 80 のものが必要ですが、443 のものが必要になることもあります。

次に、*.domain 証明書 (ワイルドカード) が必要です (作成することは可能です)。

3番目に、1つのIPでsomething.domain Webのみを作成できます(証明書のため)

于 2011-10-01T19:14:24.953 に答える