質問: webブラウザがhttpconnectリクエストを送信するように強制する方法 httpプロキシを使用すると、httpsを使用してwebサイトにアクセスできます。通常のhttpプロキシでは、ブラウザはhttpgetをクリアテキストで送信します。 httpプロキシは、httpgetリクエストのhost行を解析して、ブラウザがアクセスしたいwebサイトを認識します。通常のhttpsでは、ブラウザは暗号文でhttp getを送信するため、プロキシがブラウザがアクセスしたい宛先を知る方法はありません。したがって、ブラウザでhttpプロキシが設定されている場合、ブラウザはhttpconnectリクエストを送信します。httpconnectリクエストはクリアテキストでhostを表示します。今、私はプロキシを持っています、その後ろにいくつかの隠されたウェブサーバーがあります。それらはすべて異なるipを持っています。そして、プロキシだけが自分のipを知っています。それぞれにドメイン名があります。 myproxy.com、server1.myproxy.com、server2.myproxy.com ...のように、ブラウザがこれらのドメイン名に対してdnsクエリを実行すると、返されるipはプロキシのipになります。ブラウザがhttpでserver1.myproxy.comにアクセスする場合、dnsクエリを実行し、プロキシのipを取得します。次に、tcpを介してプロキシに接続し、http getリクエストを送信します。プロキシはhttpリクエストを解析して、ブラウザがアクセスするwebサーバーを知ることができます。ただし、ブラウザがhttpsでserver1.myproxy.comにアクセスする場合、ブラウザはプロキシをデフォルトプロキシとして設定しないため、httpconnect要求を送信しません。したがって、プロキシには、ブラウザがアクセスしたいwebサーバーを知る方法がないように思われます。ブラウザがアクセスしたいwebサーバーをプロキシに知らせる方法はありますか?つまり、ブラウザがhttpconnectリクエストを送信するように強制する方法は?ありがとう!
回答: 接続しているサーバーが実際にはプロキシであることをブラウザに伝える方法はありません。ブラウザは、プロキシについて知っている場合にのみconnectを使用します(通常、ローカル構成によって)。ロードバランサーでhttps接続を終了してから、ロードバランサーとサーバーファーム間でhttp(または別のhttps接続)のみを通信する必要があります。これを機能させるには、ロードバランサーに複数のサーバー名(一般にsubject alternate names;推奨)またはssl/tls server name indication(これはまだすべてのブラウザで信頼できるとは限りません)。