![Прокси-сервер (или другое решение), который позволит устаревшим браузерам (до эры HTTPS — со слабой поддержкой SSL/TLS или без нее) подключаться к веб-сайтам HTTPS?](https://rvso.com/image/1605177/%D0%9F%D1%80%D0%BE%D0%BA%D1%81%D0%B8-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%20(%D0%B8%D0%BB%D0%B8%20%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B5%20%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5)%2C%20%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9%20%D0%BF%D0%BE%D0%B7%D0%B2%D0%BE%D0%BB%D0%B8%D1%82%20%D1%83%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D1%88%D0%B8%D0%BC%20%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%B0%D0%BC%20(%D0%B4%D0%BE%20%D1%8D%D1%80%D1%8B%20HTTPS%20%E2%80%94%20%D1%81%D0%BE%20%D1%81%D0%BB%D0%B0%D0%B1%D0%BE%D0%B9%20%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%BE%D0%B9%20SSL%2FTLS%20%D0%B8%D0%BB%D0%B8%20%D0%B1%D0%B5%D0%B7%20%D0%BD%D0%B5%D0%B5)%20%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D1%82%D1%8C%D1%81%D1%8F%20%D0%BA%20%D0%B2%D0%B5%D0%B1-%D1%81%D0%B0%D0%B9%D1%82%D0%B0%D0%BC%20HTTPS%3F.png)
Существует ли прокси-сервер (или другое решение), который может позволить устаревшим браузерам (до эры HTTPS — со слабой поддержкой SSL/TLS или без нее) подключаться к веб-сайтам HTTPS?
Другими словами:
старый браузер <-- http соединение --> клиентский (локальный) прокси <-- HTTPS соединение --> любая веб-страница в Интернете
(браузер отправляет запрос страницы http локальному прокси, тот отправляет запрос HTTPS, и после получения ответа/страницы HTTPS прокси возвращает его браузеру в незашифрованном http)
Также приветствуются простые примеры конфигураций для таких прокси.
ЭтоTLS_termination_proxy(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
Любой из следующих проектов подойдет в вашем случае.
- OldSSL Proxy — прокси-сервер SSL/TLS (HTTPS) для устаревших операционных систем, таких как Windows XP.
- mitmproxy-oldssl — Docker-образ mitmproxy с OpenSSL, перенастроенный для включения SSLv3; может быть настроен для работы в качестве прокси-сервера для понижения версии SSL для старых машин
- WebOne — прокси-сервер HTTP 1.x, который позволяет снова использовать старые веб-браузеры в мире Web 2.0.
решение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-адресах для скриптов/изображений (и других) путем изменения страниц (Изменение HTML-страниц, возвращаемых обратным прокси-сервером nginx) или путем добавления дополнительного сервера для 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-страницы (теоретически поддерживаемой браузером) через прокси может привести к лучшему анализу этой страницы браузером. В других случаях это может привести к сбою браузера. Для свободного просмотра сайта требуется модификация страницы.