web-dev-qa-db-ja.com

SSLが有効になっている場合にのみARRで502エラーが発生するのはなぜですか?

フロントエンドサーバーにARRがあり、その背後にIIS(8)Webファームがある]構成があります。SSLはARRサーバーとIIS Webファームサーバーで、SSLオフロードを使用していません。サーバーはShared Configを使用しているため、セットアップは理論的に同じです。興味深いことに、ARRラウンドロビン構成がサーバーの1つにヒットすると、「502-Web」が返されます。サーバーがゲートウェイまたはプロキシサーバーとして機能しているときに無効な応答を受信しました。」エラー。別のサーバーがSSLが機能している状態でページを正常に返します。ブラウザをARRなしで「不良」サーバーに直接向けると、HTTPS/SSLで正常に機能します。モード。構成を確認したところ、サーバー間で何も違いはなく、ARRサーバーでFailed Request Tracingを有効にしました。これはあまり役に立ちませんでしたが、ログ内に別の502.3エラーが表示されました。なぜ502エラーが発生するのでしょうか。種類、特に共有confと同じように構成されている場合、ファーム内の1つのサーバーのみigと証明書はすべてのサーバーにありますか?

1
stackonfire

私自身の質問に答えさせてください...「サーバー名の表示が必要」を無効にすると、突然すべてが機能しました。これは奇妙なことです。同じサイトのファーム内のすべてのサーバーでSNIが有効になっているのですが、そのうちの1つでは、チェックを外すとすべてが機能しました。私の理論は次のとおりです。共有構成を使用しても、SSLバインディング情報は、実際には1つのサーバーから別のサーバーに、IPから証明書に転送されません。多くの人が知っているように、手動で他のサーバーに移動して証明書を選択する必要があります。これが、セットアップがどのように異なるかについての手がかりでした。実際、セットアップは視覚的には同じだと思いますが、ボンネットの下のどこかで、1つのバインディングで何かが異なっていました。とにかく、私はこの問題に何時間も費やしましたが、502エラーに関連する「サーバー名の表示が必要」については何も読んでいませんでした。そこで、SSLを使用しているときに502エラーが発生した場合に、将来の人々がその設定を確認できるように、インターネットコミュニティと共有したいと思いました。それは私のファームの残りの部分で機能していたので、有効にしておく方法があるかもしれませんが、少なくとも、502エラーを解決するためにどの領域を探す必要があるかがわかります。もちろん、私の意見では、502エラーの最初の原因は、SSLオフロードを使用していないときにすべてのサーバーに証明書がインストールされていないことですが、それは私の問題ではありませんでした。ファーム内の1つのサーバーだけが誤動作していたという点で私はユニークでした。 SSLが有効になっています。これが他の誰かに役立つことを願っています。

2
stackonfire

同様のエラーが発生していました。 Urlを直接書き換えようとすると正常に機能しましたが、ARRでは502セキュリティエラーが発生します。自己署名証明書を使用して開発作業を行っていますが、証明書を「どのように」作成するかによって違いが生じることがわかりました。 Powershellを使用する場合:

New-SelfSignedCertificate -DnsName *.localmachine.com  -CertStoreLocation cert:\LocalMachine\My

証明書は、証明書を使用して複数のサイトに直接アクセスしても問題なく機能しますが、ARRを介してエラーがスローされます。昔ながらのmakecertを使用する場合:

makecert -n "CN=*.localmachine.com" -pe -ss My -sr LocalMachine -sky exchange -m 120 -in "WebTeam Dev WildCard Root CA" -is Root -ir LocalMachine -a sha256 -eku 1.3.6.1.5.5.7.3.1

直接およびARRの両方で正常に機能します。トレースログでさえ、実際の問題が何であるかについての詳細は示されていません:(

0
Jester