15

socat次のようにポート転送に使用できます。

socat TCP4-LISTEN:8080 TCP4:123.456.789.12:80

この場合、これは完全に機能します。すべてのhttp-requestslocalhost:8080は にリダイレクトされ123.456.789.12:80ます。

httpsしかし、そのような転送を-requestsに使用するにはどうすればよいでしょうか?

更新:socat Firefox とリモート サーバーの間に単一のプロセスが必要です。socat単なるフォワーダ (プロキシ リダイレクタ) であり、それ以上のものではありません。このようなもの:

Firefox -> socat -> server
       ------------>
           https
4

4 に答える 4

9

表示されるブラウザ セキュリティ警告は、URL とサーバー証明書のホスト名の不一致が原因です (例: localhostvs. example.com)。

この警告なしで転送を機能させるには、フォワーダーを同じ TCP ポートに配置し、影響を受けるドメインの DNS 解決をオーバーライドする必要があります (つまり、example.com解決を にします127.0.0.1)。

最も簡単な方法は次のとおりです。

  1. hosts ファイルを編集し、example.comドメインを localhost 行に追加 します (ハウツーのようなものはここにあります) 。

  2. 転送を開始します (ドメイン名は既に localhost にリダイレクトされているため、ドメイン名ではなくサーバー IP アドレスを使用する必要があることに注意してください)

    socat TCP-LISTEN:443,fork,reuseaddr TCP:123.456.789.12:443

  3. ブラウザで動作していることを確認しますhttps://example.com

実験が終わったら、hosts ファイルからドメイン エントリを削除することを忘れないでください。


同じ TCP ポート番号を確保できない場合は、このアプローチも機能する可能性がありますが、いくつかの条件下でのみ機能します。

  • サイトはリンクで相対パスを使用しています(絶対パスは元の(したがって異なる)ポート番号を使用するため)

  • サーバー証明書にポート番号が書かれていない(通常はそうではありません)


注: MITM socat プロキシをセットアップすることは可能ですが、これには人工的に信頼された CA を追加する必要があります。

幸運を!

于 2016-01-21T11:27:11.673 に答える
-3

残念ながら、socatそのようなタスクには使用できません。の代わりに実際の HTTP プロキシ サーバーを使用する必要がありますsocat

于 2016-01-20T21:24:52.070 に答える