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. Честно говоря, вообще не понимаю в чем проблема :-)