![代理程式(或其他解決方案)可以允許老式瀏覽器(在 HTTPS 時代之前 - 沒有或很弱的 SSL/TLS 支援)與 HTTPS 網站連接?](https://rvso.com/image/1605177/%E4%BB%A3%E7%90%86%E7%A8%8B%E5%BC%8F%EF%BC%88%E6%88%96%E5%85%B6%E4%BB%96%E8%A7%A3%E6%B1%BA%E6%96%B9%E6%A1%88%EF%BC%89%E5%8F%AF%E4%BB%A5%E5%85%81%E8%A8%B1%E8%80%81%E5%BC%8F%E7%80%8F%E8%A6%BD%E5%99%A8%EF%BC%88%E5%9C%A8%20HTTPS%20%E6%99%82%E4%BB%A3%E4%B9%8B%E5%89%8D%20-%20%E6%B2%92%E6%9C%89%E6%88%96%E5%BE%88%E5%BC%B1%E7%9A%84%20SSL%2FTLS%20%E6%94%AF%E6%8F%B4%EF%BC%89%E8%88%87%20HTTPS%20%E7%B6%B2%E7%AB%99%E9%80%A3%E6%8E%A5%EF%BC%9F.png)
是否有代理(或其他解決方案)可以允許老式瀏覽器(在 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 頁面(理論上由瀏覽器支援)可以使瀏覽器更好地解析該頁面。在其他情況下,它可能會導致瀏覽器崩潰。為了自由瀏覽網站,需要修改頁面。