Можно ли настроить 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.