LINUX.ORG.RU
ФорумAdmin

nginx reverse proxy

 


0

2

Имеется Nginx reverse proxy где проксируется десяток различных сайтов (не своих, разных публичных). Везде конфиг одинаковый. (https://pastebin.com/GM5Dp2rL) - конфиг nginx

Но появилась необходимость проксировать еще 1 сайт, и получается ошибка (502 Bad Gateway в браузере), (nginx error.log) -

https://pastebin.com/vFMvykPL

Я погуглил чуть по этой ошибке (error:0A00010B:SSL) = в основном это проблема встречается, когда пытаются проксировать http сайт указывая https в proxy_pass. Но сайт за https, обычный http запрос в браузере перенаправляет на https.

Сайт находится за cloudfront. Когда пытаюсь telnet на 443 порт - получаю ответ: (https://pastebin.com/V0nr8N0w). Поидее проблема в этом, т.к. при telnet на шифрованный порт я не должен ничего получать подобного? Мб Cloudfront вначале подключает по http, смотрит, что-то там свое проверяет и только потом редиректит на https? и вся эта схема не очень нравится Nginx

Может кто сталкивался с подобным, как фиксить?

Спасибо заранее

Я бы в явном виде задавал «proxy_ssl_name» ну и добавил «proxy_ssl_server_name off» «proxy_pass_request_headers on»

для проверки ssl/tls вместо telnet нужно использовать openssl

echo -e "GET / HTTP/1.0\nHost: ${hostname}"| openssl s_client -servername ${hostname} -connect ${hostip}:443 | openssl x509 -noout
vel ★★★★★ ()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel

выводит, что сертификат есть от амазона, значит моя теория была не верна

depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
verify return:1
depth=0 CN = *.нужныйСайт.ком
verify return:1
DONE

openssl s_client -connect нужныйСайт.ком:443

и дальше:

No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 5493 bytes and written 380 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
trader1601 ()
Ответ на: комментарий от Bers666

вроде как включена поддержка. Или нужно где-то еще что-то указывать в конфиге?

root@testtest:~# nginx -V
nginx version: nginx/1.22.0
built by gcc 11.2.0 (Ubuntu 11.2.0-19ubuntu1)
built with OpenSSL 3.0.2 15 Mar 2022
TLS SNI support enabled
и там куча всего дальше
trader1601 ()
Ответ на: комментарий от trader1601

Я не о поддержке tls. А о конфигурации. По дефолту nginx не указывает sni во время tls handshake с целевым proxy backend сервером.

Bers666 ★★★★★ ()

Проверь переменную host. Она должна быть установлена в то, что в оригинале.

AVL2 ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.