Boost ASIO を使用して単純な HTTP/HTTPS プロキシを作成しようとしています。HTTP は問題なく動作していますが、HTTPS に問題があります。記録のために、これはローカル プロキシです。とにかく、これはトランザクションが私のセットアップでどのように機能するかの例です。
ブラウザが Google.com を要求する
ブラウザに嘘をつき、127.0.0.1 :443 に移動するように指示する
ブラウザ ソケットが 443 でローカル サーバーに接続する
ヘッダーを読み取ろうとするので、実際のホスト ルックアップを実行して 2 番目のアップストリームを開くことができますソケットを使用して、リクエストを簡単に転送できます。
これは、物事がすぐに失敗する場所です。着信ソケットのヘッダーを印刷しようとすると、要求を行っているブラウザーによって既に暗号化されているように見えます。最初は、ごちゃごちゃしたコンソール出力はヘッダーが圧縮されているだけだと思っていましたが、徹底的なテストを行った結果、そうではありませんでした。
だから、誰かが私を正しい方向に向けることができるかどうか疑問に思っています.おそらく、ここで何が起こっているのかをよりよく理解できる読み物に. 「サーバー」(私のプロキシ) への接続が完了してクライアントと通信する前に、ヘッダーがすぐに暗号化されるのはなぜですか? 一時キーですか?初期ヘッダーを無視して、クライアントにどの一時キーを使用するか、または圧縮/暗号化しないかを伝えるコマンドを送り返す必要がありますか? 助けてくれてありがとう、私はしばらくこれにこだわっていました。