Apache httpdが名前ベースの仮想ホストがSNI対応のブラウザでのみ機能することを通知するのはなぜですか(RFC 4366)


9

Apacheがログにこのエラーメッセージを表示するのはなぜですか?誤検知ですか?

[warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)

私は最近Centos 5.7から6.3にアップグレードし、それにより新しいhttpdバージョンにアップグレードしました。私は常に以下のようなssl virtualhost設定を行いました。同じ証明書を共有するすべてのドメイン(ほとんど/常にワイルドカード証明書)は、同じIPを共有します。しかし、これまでにこのエラーメッセージを受け取ったことはありません(または、ログを十分に調べていなかったのでしょうか?)学んだことから、これはSNI(サーバー名表示)なしで機能するはずです。

ここに私のhttpd.confファイルの関連部分です。このVirtualHostがないと、エラーメッセージは表示されません。

NameVirtualHost 10.101.0.135:443

<VirtualHost 10.101.0.135:443>
  ServerName sub1.domain.com

  SSLEngine on
  SSLProtocol -all +SSLv3 +TLSv1
  SSLCipherSuite ALL:!aNull:!EDH:!DH:!ADH:!eNull:!LOW:!EXP:RC4+RSA+SHA1:+HIGH:+MEDIUM
  SSLCertificateFile /opt/RootLive/etc/ssl/ssl.crt/wild.fareoffice.com.crt
  SSLCertificateKeyFile /opt/RootLive/etc/ssl/ssl.key/wild.fareoffice.com.key
  SSLCertificateChainFile /opt/RootLive/etc/ssl/ca/geotrust-ca.pem
</VirtualHost>

<VirtualHost 10.101.0.135:443>
  ServerName sub2.domain.com

  SSLEngine on
  SSLProtocol -all +SSLv3 +TLSv1
  SSLCipherSuite ALL:!aNull:!EDH:!DH:!ADH:!eNull:!LOW:!EXP:RC4+RSA+SHA1:+HIGH:+MEDIUM
  SSLCertificateFile /opt/RootLive/etc/ssl/ssl.crt/wild.fareoffice.com.crt
  SSLCertificateKeyFile /opt/RootLive/etc/ssl/ssl.key/wild.fareoffice.com.key
  SSLCertificateChainFile /opt/RootLive/etc/ssl/ca/geotrust-ca.pem
</VirtualHost>

回答:


7

VirtualHostディレクティブがServerNameディレクティブや証明書のCNと一致しないためです。ワイルドカード以外の部分が同一でなければならないワイルドカード証明書がない限り、3つすべてが同一である必要があります。


だからここでの答えは<VirtualHost 10.101.0.135:443>行を次のように変更すること<VirtualHost sub2.domain.com:443>です?潜在的に?
MichaelJones 2014年

@MichaelJonesこれで問題は解決しましたか?
フェルナンドサンティアゴ

@FernandoSantiago SNIの信頼性が不十分であることがわかったので、仮想ホストに別のIPアドレスを支払うようになりました。そして、私は私のVirtualHost宣言にそれらのIPアドレスを持っています。
MichaelJones 2015年

1
これは私の問題を完全に解決しました。VirtualHostワイルドカードを使用していましたが、ServerNameディレクティブは証明書のCNと一致しています。3つすべて一致し、ビオラ!PS:この回答serverfault.com/questions/578061/...がわかりますあなたはRSA証明書に入れCNを取得する方法
3bdalla

3

これはエラーではなく、警告メッセージです。

1)Apacheバージョンを更新し、2)2つのIPを使用するのとは対照的に、同じ正確なIPアドレスを使用する2つのSSL仮想ホストを使用しているためです。

IPを共有しているため、SNIをサポートしていないブラウザーは最初のWebサイトのみを取得し、2番目のWebサイトは取得しません。


SNIのないブラウザーは、最初のWebサイト用に構成された証明書を取得しますが、実際に要求を提供するためにそれらを仮想ホストにマップするために、Hostヘッダーが通常チェックされます。
シェーンマッデン2012年

@ ShaneMadden、SSL接続が確立される前にHost:ヘッダーがチェックされないため、正しいとは思えません。これが、SNIをサポートすることの要点です。または、SSL VHごとに1つのIPが必要です。したがって、SNIがない場合、ApacheはデフォルトでそのIPアドレスで最初に見つかったVHになり、Host:ヘッダーは実質的に無視されます。
rightstuff 2012年

...それ以外の場合は、1つの単一IPアドレスで数百のSSL NameBasedVirtualHostsを実行できますが、これは当てはまりません(サーバーとクライアントによるSNIサポートがない場合)。
rightstuff

4
Otherwise you could do 100s of SSL NameBasedVirtualHosts on 1 single IP address, and we know that's not true (without SNI support by server and client)あなたはできる。これの通常の使用は、すべてが同じ証明書、ワイルドカード、または別名証明書を通常持っている場合です。しかし、独自のSSL証明書を持つ2つのvhost-domain1.comとdomain2.comがあり、最初にdomain1.comが構成されているとします。SNI非対応のブラウザはdomain2.comを要求します-domain1証明書が送信されたため、証明書ドメインの不一致エラーが発生しますが、クリックしてドメイン2のコンテンツを取得します。
シェーンマッデン

1
ホストヘッダーが無視された場合、「複数の名前ベースの仮想ホストを持つワイルドカード証明書」という単純で広く展開されているケースでさえ破綻します。とにかく、ここで私がここで回答した質問のいくつかの例を示し、その動作が表示されています。serverfault.com/q/292637 serverfault.com/q/330212
シェーンマッデン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.