Proxy

設置 TCP-SNI 代理,將 SSL 流量動態轉發到 SNI 可能包含的任何主機名

  • June 21, 2020

我首先要總結一下我的目標:

我將設置 DNS 伺服器並配置我的智能電視以使用它。我將設置 DNS 伺服器,以便實際上不會解析對特定 DNS 區域的請求,而是 DNS 伺服器將返回我的代理伺服器的 IP。代理伺服器需要接受任何 HTTPS 請求,檢查 SNI,並將請求轉發到相應的主機。我無法靜態配置代理應將傳入請求傳遞到的主機,因為這些主機名是在特定 DNS 區域中“隨機”(=在我的控制之外)生成的。

到目前為止,我已經研究了 nginx 的 ngx_stream_ssl_preread_module 以及 HProxy。到目前為止,我還沒有找到讓他們代理將流量傳遞給 $requesthostname 的方法,似乎您總是需要指定將流量傳遞到的後端。

在使用 mitmproxy 檢查本地機器上的 HTTPS 流量時,我意識到它的行為符合我的要求,因為它將所有 HTTPS 請求轉發到相應的主機名。但是,由於我無法在我的智能電視上安裝 mitmproxy 的 CA 證書,因此我無法將其用於此目的。

有沒有人知道服務於我的目的的代理軟體,或者以這種方式配置我提到的代理伺服器之一的方法?

非常感謝您的幫助,在此先感謝

似乎這在 nginx 中應該很簡單。

stream {
   server {
       resolver 8.8.8.8 8.8.4.4;
       proxy_pass $ssl_preread_server_name:443;
       ....

引用自:https://serverfault.com/questions/1022376