顧客(氏)プロキシ経由(人)サーバーに接続する(S):
A --http--> P --https--> S
リクエストの内容を調べるにはプロキシが必要です。これには2つのオプションがあります。
- SSLトンネルブロック:氏
CONNECT
間にSSLトンネルを作成する要求を送信します。氏そしてSただし、プロキシはSSLトンネルを傍受して中断し、信頼できる内部CAによって署名された証明書を即座に生成します。氏握手を完了します。 - クライアントは
https://
スキームを使用します。:氏トンネルを作成せずにHTTPS URLをプロキシに渡し(HTTP URLと同様)、プロキシはトンネルからHTTPS URLを取得することを担当します。SHTTPSを使用して次に渡します。氏明確なHTTPで。
私の考えでは、お互いのコミュニケーション氏そして人すでにセキュリティのためにSSLブロックを設定することは意味がないと思います。設定には時間がかかり、独自の作成CAをクライアントのルートCAに挿入する必要があり、無駄なハンドシェイクと暗号化を処理するためにコンピューティングリソースを無駄にします。 。対照的に、2番目のオプションは簡単で、CONNECT
プロキシの使用を完全に無効にすることができます。
簡単な手動テストにより、私のイカのインストールが正しく機能し、2番目のオプションを正しくサポートしていることがわかります。telnet
スキームをプロキシに渡すことで、文書を正常に検索できます。https://
しかし、顧客氏FreeBSDでは、クライアントソフトウェアが同じように動作するように指示する方法が見つかりませんでした。
で関連オプションが見つかりませんでしたfetch
。 wget
.
私もこれを試してみましたが、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ベースシステムのツールを使用するか、リポジトリで利用可能ないくつかのよく知られたクライアントを使用するかどうか、すべてのソリューションを歓迎します。