Re: проксирование на https

Maxim Dounin mdounin на mdounin.ru
Чт Июн 16 14:01:51 UTC 2016


Hello!

On Thu, Jun 16, 2016 at 06:49:42PM +0500, Илья Шипицин wrote:

> Привет!
> 
> есть сервер на win2012r2, он настроен с поддержкой SNI.
> он может принять соединение на https://computer.domain, но категорически
> отказывается принимать соединения на https://ip-адрес
> <https://xn--ip--8cdug0fj>
> 
> я убился уже, не могу заставить при проксировании передавать имя. оно
> ресолвится и в результате
> 
> 2016/06/16 18:44:22 [error] 55328#0: *703668639 peer closed connection in
> SSL handshake (54: Connection reset by peer) while SSL handshaking to
> upstream, client: 46.17.201.71, server: XXX, request: "GET
> /adfs/portal/updatepassword HTTP/2.0", upstream: "
> https://X.X.X.X:443/adfs/portal/updatepassword", host: "XXX"
> 
> 
> можно как-то сделать, чтобы апстрим не ресолвился?

Если нужно, чтобы при соединении к бекенду nginx использовал 
Server Name Indication, aka SNI - надо включить 
proxy_ssl_server_name.  Имя берётся из proxy_pass, если нужно 
нестандартное - можно задать с помощью диреткивы proxy_ssl_name.

Соответственно если нужно, чтобы nginx всегда шёл к заданному 
ip-адресу, но при этом указывал имя "computer.domain", есть два 
варианта:

- Определить upstream computer.domain с нужным IP-адресом, как-то 
  так:

    upstream computer.domain {
        server 10.0.0.2:443;
    }

    proxy_pass https://computer.domain;
    proxy_ssl_server_name on;

- Написать IP-адрес явно в proxy_pass, и переопределить имя где 
  надо:

    proxy_pass https://10.0.0.2;
    proxy_ssl_server_name on;
    proxy_ssl_name computer.domain;
    proxy_set_header Host computer.domain;

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru