ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: nginx+exchange



Igor Muratov пишет:
Igor Sysoev пишет:
On Thu, Jul 09, 2009 at 12:19:09PM +0400, Andrew Kopeyko wrote:

On Thu, 9 Jul 2009, Igor Sysoev wrote:

Возможно, вместо

      proxy_set_header    Server internal.exchange.name;
      proxy_set_header    Host $host;

нужно

      proxy_set_header    Host internal.exchange.name;
Это бы точно сработало, если бы мы ходили к бэкенду по http, а не по https как в этом случае.

В этом же случае - всё зависит от поддержки TLS-расширения "Server Name Indication" (RFC-4366) на обоих концах.

Насколько я знаю, IIS (поддерживающий OWA) не понимает SNI.

SNI, скорее всего, не понимает. Но кто его знает, как он там устроен -
может, ему ещё и имя нужно. SNI - это больше для клиента важно, какой ему
сертификат покажут.

Игорь, скажи - посылает ли ngx_http_proxy_module как клиент расширение SNI при обращении к SSL-enabled бэкенду?

Сейчас - нет.


Игорь, спасибо за правки. Заголовки Server и Host оба выставил в локальное имя ексчейнджа. Добавил info для errorlog и вот чего туда пишется

2009/07/09 10:56:08 [info] 17850#0: *1 peer closed connection in SSL handshake while SSL handshaking, client: X.X.X.X, server: nginx.example.org 2009/07/09 10:56:08 [info] 17850#0: *2 peer closed connection in SSL handshake while SSL handshaking, client: X.X.X.X, server: nginx.example.org

Ну и tcpdump подтверждает что на ексчейндж обращения даже не делаются. Все заканчивается на диалоге клиента с nginx. Чем-то клиента не устраивает SSL. Ну да, сертификат подписан собственным CA, но если ексчейндж открыть в инет и поставить там аналогичный сертификат, то клиент это съедает не сопротивляясь. Т.е. я предполагаю что проблема не в сертификате как таковом.

PS. Честно говоря, вообще не понимаю в чем проблема :-)

Прошу прощения. Ввел в заблуждение.

Оказывается на клиенте была включена взаимноя авторизация SSL. Отключил это и вроде что-то пошло. По крайней мере в логах теперь вот это:

2009/07/09 12:08:51 [info] 20467#0: *7 client sent invalid method while SSL handshaking, client: X.X.X.X, server: nginx.example.org, request: "RPC_IN_DATA /rpc/rpcproxy.dll?nginx.example.org:6002 HTTP/1.1" 2009/07/09 12:08:51 [info] 20467#0: *8 client sent invalid method while SSL handshaking, client: X.X.X.X, server: nginx.example.org, request: "RPC_OUT_DATA /rpc/rpcproxy.dll?nginx.example.org:6002 HTTP/1.1"

Скорее всего ексчейндж не переваривает вот это внешнее имя и его нужно будет просто поправить средствами rewrite на правильное.

Сегодня попробую и отпишу результат.




 




Copyright © Lexa Software, 1996-2009.