Назад | Перейти на главную страницу

Могу ли я настроить NGINX как прозрачный SSL-прокси?

Можно ли настроить NGINX как обратный прозрачный прокси с поддержкой SSL? У меня есть стороннее приложение, использующее HTTPS. В бизнес-целях необходимо регистрировать некоторые данные запросов от HTTPS-соединений.

Да, ты можешь. http://nginx.org/r/proxy_pass

Как видно из описания proxy_pass директива, она позволяет перенаправление для обоих http и https протоколы / адресные схемы.

Я бы предположил, что вы даже можете настроить универсальное устройство перехвата TLS с помощью nginx, используя proxy_pass $scheme://$http_host;.

Кроме того, вы можете изучить OpenBSD relayd, который, согласно relayd.conf.5, официально поддерживает «проверку TLS» и «перехват SSL / TLS».

короткий ответ - да. вы можете использовать nginx в качестве обратного прокси. но ваш вариант использования не ясен.

Сервер может проверять SNI (идентификатор имени сервера, то есть имя хоста), который поступает в виде обычного текста в первом пакете TLS, отправленном клиентом, а затем прозрачно пересылать TCP-пакеты другому серверу, даже не декодируя данные. Это полезно для размещения на одном IP-адресе нескольких сервисов, имеющих собственные сертификаты SSL, которые могут вообще не быть известны прокси.

Я не знаю никаких прокси, реализующих это, и он не будет работать с клиентами, которые не отправляют SNI, или в будущем, когда будут приняты зашифрованные SNI.

Обычно все обратные прокси, включая nginx, просто декодируют SSL, а затем устанавливают другое SSL-соединение с внутренним сервером (если https используется в proxy_pass).

Вы можете использовать TCP-прокси, если имеете в виду HTTPS под SSL.

вариант 1: LVS TCP Forwording

проверено аутентификацией сертификата клиент / сервер kubernetes.

Вариант 2: использовать прокси-сервер nginx http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html не проверено.

есть больше возможностей, если прокси не мешает протоколу HTTPS.