代理程式(或其他解決方案)可以允許老式瀏覽器(在 HTTPS 時代之前 - 沒有或很弱的 SSL/TLS 支援)與 HTTPS 網站連接?

代理程式(或其他解決方案)可以允許老式瀏覽器(在 HTTPS 時代之前 - 沒有或很弱的 SSL/TLS 支援)與 HTTPS 網站連接?

是否有代理(或其他解決方案)可以允許老式瀏覽器(在 HTTPS 時代之前 - 無 SSL/TLS 支援或較弱的 SSL/TLS 支援)與 HTTPS 網站連接?

換句話說:

舊瀏覽器 <-- http 連線 --> 用戶端(本機)代理程式 <-- HTTPS 連線 --> 任何網際網路網頁

(瀏覽器向本地代理發送http頁面請求,本地代理發送HTTPS請求,代理收到HTTPS回應/頁面後,以未加密的http將其傳回給瀏覽器)

此類代理的簡單範例配置也受到歡迎。

是個TLS_終止_代理https://serverfault.com/questions/943649/https-http-lightweight-proxy)我正在尋找什麼(或僅適用於伺服器)?

我已經開始檢查 TLS_termination_proxy 列表中的代理(存檔列表1,2)(Nginx、stunnel、Hiawatha、Caddy、Apache 和 Squid)適用於 Windows。 Nginx 似乎可以做到這一點。 stunnel適用於 64 位元(也有 32 位元版本)。

答案1

答案2

使用 Nginx 作為所有請求域的反向代理。

server {
  # default_server not needed if its first server in config
  listen 80 default_server;
  location / {
    # x.x.x.x - IP address of DNS server
    resolver x.x.x.x;
    # port may be omitted
    proxy_pass https://$host:443;
  }
}

您也很可能希望透過修改頁面來處理腳本/圖像(和其他)的硬編碼 URL(修改nginx反向代理回傳的HTML頁面),或透過增加額外的伺服器來進行 ssl 請求(如果瀏覽器支援 https 協定)。

答案3

Nginx 作為 url 代理(形式為http://localhost/proxy/?u=url_to_process),對於沒有代理支援的瀏覽器(在馬賽克1.0 和大提琴從 1993 年開始,在 Windows 上 [Cello 無法辨識 localhost,您必須使用 127.0.0.1 來代替]):

server {
    listen       80;

    # dns server
    resolver x.x.x.x;

    location /proxy {
        #is ending slash missing? (avoid redirection)
        #**TODO**: handle file url
        if ($arg_u !~ /$) {
            set $slash "/";
        }

        proxy_pass $arg_u$slash;

        #handle eventual redirection to https
        set $url_proxy http://localhost/proxy/?u=;
        proxy_redirect ~^(https://.+) $url_proxy$1;
    }
}

這允許顯示參數 u 中傳遞的單頁(範例:http://localhost/proxy/?u=http://www.aliweb.com)。在某些情況下,透過代理傳遞 http 頁面(理論上由瀏覽器支援)可以使瀏覽器更好地解析該頁面。在其他情況下,它可能會導致瀏覽器崩潰。為了自由瀏覽網站,需要修改頁面。

相關內容