nginx+exchange

Igor Muratov migor at altlinux.org
Thu Jul 9 21:20:24 MSD 2009


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 на правильное.

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






More information about the nginx-ru mailing list