CONNECTトンネルを使用せずにFreeBSDのプロキシにHTTPSスキーム要求をどのように転送できますか?

CONNECTトンネルを使用せずにFreeBSDのプロキシにHTTPSスキーム要求をどのように転送できますか?

顧客()プロキシ経由()サーバーに接続する(S):

A --http--> P --https--> S

リクエストの内容を調べるにはプロキシが必要です。これには2つのオプションがあります。

  1. SSLトンネルブロック:CONNECT間にSSLトンネルを作成する要求を送信します。そしてSただし、プロキシはSSLトンネルを傍受して中断し、信頼できる内部CAによって署名された証明書を即座に生成します。握手を完了します。
  2. クライアントはhttps://スキームを使用します。:トンネルを作成せずにHTTPS URLをプロキシに渡し(HTTP URLと同様)、プロキシはトンネルからHTTPS URLを取得することを担当します。SHTTPSを使用して次に渡します。明確なHTTPで。

私の考えでは、お互いのコミュニケーションそしてすでにセキュリティのためにSSLブロックを設定することは意味がないと思います。設定には時間がかかり、独自の作成CAをクライアントのルートCAに挿入する必要があり、無駄なハンドシェイクと暗号化を処理するためにコンピューティングリソースを無駄にします。 。対照的に、2番目のオプションは簡単で、CONNECTプロキシの使用を完全に無効にすることができます。

簡単な手動テストにより、私のイカのインストールが正しく機能し、2番目のオプションを正しくサポートしていることがわかります。telnetスキームをプロキシに渡すことで、文書を正常に検索できます。https://

しかし、顧客FreeBSDでは、クライアントソフトウェアが同じように動作するように指示する方法が見つかりませんでした。

で関連オプションが見つかりませんでしたfetchwget.

私もこれを試してみましたが、curlこれが説明されているようです-p/--proxytunnel を除くすべての操作は HTTP 経由で行われます。使用されますが、このオプションがなくても HTTPS 接続用のトンネルを作成しようとします。また、--no-proxytunnel同じマンページによれば、いくつかのブールオプションはこの構文を受け入れますが、運がないので、試すことを含むこのオプションを試しました。プロキシトンネルはライン5635で実施されているようです。ライブラリ/url.c犯罪):

/*************************************************************
 * If the protocol is using SSL and HTTP proxy is used, we set
 * the tunnel_proxy bit.
 *************************************************************/
if((conn->given->flags&PROTOPT_SSL) && conn->bits.httpproxy)
  conn->bits.tunnel_proxy = TRUE;

FreeBSDベースシステムのツールを使用するか、リポジトリで利用可能ないくつかのよく知られたクライアントを使用するかどうか、すべてのソリューションを歓迎します。

ベストアンサー1

おすすめ記事