SNIとHTTP提供ドメインの競合


22

最近、小さなストアを備えたWordPress Webサイトをホスティングプロバイダーから、Ubuntu Server 12.04.2 LTSおよびApache 2.2.22を実行している自分のサーバーに移動しました。ストアにSSLが必要です。私は、サーバーの新しいIP上での簡単なバーチャルホストのカップルを設定する1は、特定のIPのポート80に結合し、他方はポート443への結合を両方持っているServerName www.example.comServerAlias example.comのバーチャルホストの設定インチ 私が持っていSSLStrictSNIVHostCheck offます。

サイトの動作は非常に遅いですが、動作しています。エラーログに次のメッセージが表示されます。

[Error] Hostname example.com provided via SNI and hostname www.example.com provided via HTTP are different

遅さは上記のメッセージに関係していると思います。それがなぜ現れているのか、私はそれについて何ができるのか?

回答:


24

(エラーログではなく)アクセスログを確認します。エラーの日時により、問題のあるリクエストを特定し、ユーザーエージェントを見つけることができるはずです。私の場合、それはボットでした:

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)"

サーバーがHTTP 400:Bad Requestで応答します。

誤解がない限り、TLSネゴシエーションでは、クライアントはホスト名を2回送信します。SNI(サーバー名表示)でSSL接続が確立される前と、実際のHTTP要求で1回です。サーバー名が一致しない場合、これは壊れたクライアントを示し、サーバーの構成方法とは関係ありません。

いつか彼らはボットを修正するかもしれませんが、その間はおそらく無視することができます。リクエストが非常に高いレートで来ない限り、これがホストの速度低下の原因になるとは思いません。


11

このエラーは、サーバーの脆弱性をテストするために一部のクライアントによって意図的に引き起こされた可能性があります。からのリクエストresearchscan367.eecs.umich.eduが、私が管理しているサーバーでエラーを引き起こしたことがわかりました。この場合、エラーが発生するのは良いことです®。

どのような攻撃が可能なのか興味があり、Security Stack Exchangeでこの質問をしました。Apache2のエラーコードAH02032によってどのような攻撃が防止されますか?


1

一見クライアントの問題のように聞こえます...この問題の原因はどのブラウザですか?

このメッセージは、SSL接続のセットアップ中にクライアントが送信するホスト名が、SSLレイヤーが起動した後にクライアントがHTTPS要求で送信するホスト名と異なることを示唆しています。


何がこれを引き起こしているのか分かりません。エラーはクライアント情報を報告しません。私はこれを定期的に見ていることを知っています。理論上、サーバーはwww.domain.comとdomain.comが同等であることを知っているため、ServerAliasがそれを満足させるのに十分であることを望んでいました。
フリッカーフライ

@flickerflyはい、これはバグの多いクライアントであり、識別できない場合は実行できません。
マイケルハンプトン

2
さて、ポート443のNameBasedVirtualHostディレクティブを削除することでSNIを無効にしました。この時点では必要ないでしょう。私はそれが機能するはずだと思う。
フリッカーフライ

1

私の場合、アンダースコアを使用した新しい仮想ホストの作成が問題でした。ワイルドカードSSL証明書があります。

動作しませんでした:

<VirtualHost *:443>
        SSLEngine on
        ServerName sub_domain.example.com
        Redirect / https://www.example.com/restofmyredirectlink
</VirtualHost>

Apacheは正常に再起動しましたが、HTTP 400エラーが発生しました。エラーログ:

[Wed Sep 05 11:28:00.349960 2018] [ssl:error] [pid 19906:tid 140392626808576] AH02031: Hostname sub_domain.example.com provided via SNI, but no hostname provided in HTTP request

しかし、アンダースコアを削除することはできました:

<VirtualHost *:443>
        SSLEngine on
        ServerName subdomain.example.com
        Redirect / https://www.example.com/restofmyredirectlink
</VirtualHost>

1
ServerFaultへようこそ。ホスト名にアンダースコアを使用すると、RFCに反し、さまざまな方法で破損します。 stackoverflow.com/questions/2180465/…–

1
まさに!そのため、ここで参照するようになりました。
MS Berends

0

/ etc / hostsファイルをチェックして、ドメイン名をローカル(内部)IPアドレスに割り当てているかどうかを確認します。/ etc / hosts service nscd restartを変更した後、ネームサービスキャッシュデーモンを再起動することを忘れないでください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.