LINUX.ORG.RU
ФорумAdmin

NGINX https proxy

 


1

1

Добрый день, прошу сильно не пинать. Возник такой вопрос: В школе сейчас работает такая система фильтрации: По http фильтрует по именам, по https фильтрует по именам с подменой сертификата на свой. Частично https открыты пулом ip адресов, либо отдельным ip адресом.

Есть сайт, который работает на https, но открыть пул его адресов - почти нереально: он где-то на облаке размещен и использует множество разных адресов. По именам также открыть не получилось.

Задача: сделать второй nginx, который будет прокси-сервером под данный сайт, без подмены https. В инете нашел настройки только для обладателей таких серверов (когда приватный ключ также доступен). Есть идеи, или даже не думать об этом?


tls 1.3 идёт в массы, говорили они...

anonymous
()

не совсем то что нужно, но таки вот - упаковка http в https

/etc/nginx/sites-enabled/transmission

##### TRANSMISSION SSL PROXY ###########
server {
listen 10381 default_server ssl;
ssl_certificate /etc/nginx/trans.crt;
ssl_certificate_key /etc/nginx/trans.key;
server_name transmission;

access_log /var/log/nginx/transmission.access.log;

location / {
        proxy_pass http://127.0.0.1:9091;
        }
}
#end

pfg ★★★★★
()
Ответ на: комментарий от pfg

В том то и дело, что я ssl_certificate /etc/nginx/trans.crt; ssl_certificate_key /etc/nginx/trans.key; не могу таких путей прописать - я не знаю где эти ключи и доступа к ним у меня быть не может)) я же не владелец этого сайта

zz1666
() автор топика
Ответ на: комментарий от zz1666

засунь туда, куда у тебя есть доступ и пропиши путь к ним.

pfg ★★★★★
()
Ответ на: комментарий от anonymous

дык в чем проблема - напиши сответ лутше качественне и развернутее :) подрастешь в своих глазах

pfg ★★★★★
()
Ответ на: комментарий от pfg

подрастешь в своих глазах

Ты, так, ничего и не понял.

anonymous
()

Лучше подними впн и ходи на любые сайты.
Не все ресурсы позволяют себя проксировать.

Deleted
()
Ответ на: комментарий от Deleted

Не все ресурсы позволяют себя проксировать.

В ОП-посте белый список.

Лучше подними впн и ходи на любые сайты.

Лучше не заниматься ерундой в школе, а учиться.

anonymous
()
Ответ на: комментарий от anonymous

Нам этот фильтр настроили и научили пользоваться, я «отвечаю» за его работоспособность. То, что надо учиться - это безусловно верно, но по отношению к ученикам (я так полагаю))). По теме - есть идеи? Ещё раз более кратко: нужно настроить прокси для https, без подмены сертификата, без закрытой части сертификата.

zz1666
() автор топика
Ответ на: комментарий от zz1666

Прокси тут не поможет. Проксирование — это просто перенаправление трафика.

По теме - есть идеи?

Ты не можешь использовать произвольный адрес по протоколам http, и https. Значит надо проверить, возможность использования других протоколов.
Проверь dns командой dig.
Попробуй пинг по IP.
Если блокировка на транспортном уровне, поищи впн в доступной сети.

anonymous
()
Ответ на: комментарий от Deleted

1.открываешь свой сайт

Его сайт должен находиться в белом списке, в таком случае, и быть за пределами ограничиваемой сети.
Без этого, остальные пункты можно не читать.

anonymous
()
Ответ на: комментарий от anonymous

если ТС хочет именно таким образом решать задачу, значит он считает, что с этим у него всё ок.

Deleted
()
Ответ на: комментарий от anonymous

Если блокировка на транспортном уровне, поищи впн в доступной сети.

Ой, прикладной уровень имелся ввиду.

anonymous
()
Ответ на: комментарий от Deleted

значит он считает, что с этим у него всё ок.

Тогда, всё в порядке.

anonymous
()
Ответ на: комментарий от Deleted

Дак в примере выше - жесткая ссылка на ключи

ssl_certificate /etc/nginx/trans.crt; ssl_certificate_key /etc/nginx/trans.key;

или я чего-то не понимаю?

В нашей сети есть 5 профилей: 1. Полный доступ - без ограничений по именам/портам 2. Замы - открыты 80 и 443 порты, без ограничений по именам 3. Учителя - 80 и 443, только белый список 4. Ученики - 80 и 443, только белый список 5. Полная блокировка - закрыты все порты.

Машина, на которой пытаюсь поднять этот прокси имеет «Полный доступ». Цель: обращаемся по ip прокси-сервера, он получает данные, возвращает клиенту сайт, который написан в конфиге.

Конфиг файл: ******************************* server { listen 80; location /upstream { proxy_pass https://имясайта; proxy_ssl_certificate /etc/nginx/client.pem; proxy_ssl_certificate_key /etc/nginx/client.key; proxy_ssl_trusted_certificate /etc/nginx/trusted_ca_cert.crt;

proxy_ssl_verify on; proxy_ssl_verify_depth 2; proxy_ssl_session_reuse on; } } ******************************* в логах крашится по «не найден файл /etc/nginx/client.pem» Если оставить только

location /upstream { proxy_pass https://имясайта; }

то перенаправление происходит, но при попытке залогиниться говорит об ошибке. NGINX правда виндовый, но он точно умеет перенаправлять трафик по http... И пока что тщетно пытаюсь научить его https :D

zz1666
() автор топика
Ответ на: комментарий от anonymous

тогда это подмена сертификата и браузер отказывается работать с этим сайтом. Именно так и работает фильтрация сейчас...

zz1666
() автор топика
Ответ на: комментарий от zz1666

И адрес целевого и проксирующего сайта должны совпадать, или надо усложнять конфиг, и подменять адрес запрашиваемый клиентом.

anonymous
()
Ответ на: комментарий от zz1666

Нет. Добавь сайт в исключения.

anonymous
()
Ответ на: комментарий от zz1666

80 и 443

Внутри сети все остальные порты закрыты?

anonymous
()
Ответ на: комментарий от Deleted

letsencrypt

В LAN — нинужна. К тому-же домен прийдётся регать и подтверждать, ывставляя его в инет.

anonymous
()
Ответ на: комментарий от Deleted

подскажи ещё способ заиметь валидный сертификат.

Самоподписаный сертификат является валидным. Иначе, это как не доверять самому себе. Речь ведь про локалку.

тс хочет

ТС хочет, чтоб сертификаты с сайтов не подменялись. При самоподписанном условия выполняются. Но, если только, они по пути до того «открытого» компа не подменяются. А если они подменяются, и при открытии сайтов с него, то прокси тут не поможет.

anonymous
()
Ответ на: комментарий от anonymous

Сертификат подменится с оригинального сайта на самоподписанный сертификат для прокси-сервера и всё будет работать?.. Чет я немного сомневаюсь)

zz1666
() автор топика
Ответ на: комментарий от zz1666

Сертификат подменится с оригинального сайта

Нет. Подмена сертификата, это когда сервер посылает тебе один сертификат, а получаешь ты другой сертификат.
В случае прокси, ты запрашиваешь сертификат у нжингса, это не является подменой.

p.s. Почему ты не отвечаешь на сообщения, когда тебе пытаются помочь? Что с протоколами отличными от http, https? Подменяется ли сертификат, при открытии сайта с «открытого» компа?

anonymous
()
Ответ на: комментарий от MaZy

nginx+haproxy - блокируем по сни

haproxy в транспарент режиме, получаем req.ssl_sni, iptables заворачивает на него 443 tcp входящий

nginx c модулем ssl preread ( proxy_pass $ssl_preread_server_name:443; )

Схема рабочая

anonymous
()
Ответ на: комментарий от anonymous

потому что половину не понимаю :D если с компа с полным доступом идти - ничего не подменяется. «Идёт в обход сквида» - то, что запомнил...

zz1666
() автор топика
Ответ на: комментарий от zz1666

если с компа с полным доступом идти - ничего не подменяется.

Ок, тебе не нужен ssl на нгингсе, и домен к нему не нужен. Достаточно проксировать на целевой сайт, и при проксировании подсунуть в proxy_set_header host адрес целевого сайта.

половину не понимаю
то, что запомнил...

Хуёво тебе...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.