постоянное использование https

Sergej Kandyla sk.paix at gmail.com
Fri Jun 12 17:19:52 MSD 2009


Alexey V. Karagodov пишет:
> http://tomcat.apache.org/tomcat-6.0-doc/proxy-howto.html
> не оно?
>
> On 12.06.2009, at 16:04, Sergej Kandyla wrote:
>
>> umask пишет:
>>> Добрый день,
>>>
>>> Есть nginx и бэкэнд в виде apache tomcat. Под томкатом работает SSO 
>>> (single sign on) приложение (оно коммерческое и изменить его 
>>> поведение не представляется возможным).
>>>
>>> Нужно чтобы вся работа с этим приложением велась через nginx+SSL.
>>> Поддержка SSL на уровне nginx работает отлично. Но вот бэкэнд при 
>>> первом заходе пользователя на https://test.ru/ отдаёт:
>>>
>>> HTTP/1.1 200 OK
>>> Server: nginx/0.7.55
>>> Date: Fri, 12 Jun 2009 07:16:06 GMT
>>> Content-Type: text/html
>>> Connection: keep-alive
>>> Keep-Alive: timeout=240
>>> ETag: xxxxxxxxxxxxxx
>>> Last-Modified: Thu, 16 Apr 2009 16:14:40 GMT
>>> Content-Length: 234
>>>
>>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" 
>>> "http://www.w3.org/TR/html4/loose.dtd">
>>> <html>
>>> <head>
>>> <meta http-equiv="refresh" content="0;url=http://test.ru/test/">
>>> </head>
>>>
>>> <body>
>>> </body>
>>> </html>
>>>
>>> И браузер следует по незащищённой ссылке.
>>>
>>
>> а если фаером редиректить с 80 на 443 ?
> прикольное извращение ...

ну так научены жизнию делать нетривиальные кастыли ;)  (увы...)

Вообще мне кажется что это сам томкат в хедерах подставляет 
url=http://test.ru/test/
по крайней мере я много раз выхватывал эту граблю, пытаясь натравить 
[https] -> nginx  -> tomcat [http]

собственно это и не грабля а нормальное поведение, и лечится добавлением 
в томкат поддержки SSL. Например, у меня, так

    <Connector port="8443" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"  
keystorePass="123456" />


имхо это будет правильнее, чем пытаться сделать кастыль на базе nginx.


>
>>
>>
>>> Соответственно, proxy_redirect не работает. Сделать хак через 
>>> ngx_http_sub_module не получилось.
>>> Подскажите, как сделать так, чтобы всегда использовался https 
>>> независимо от того, что отдаёт бэкэнд?
>>>
>>> К сожалению сделать так, чтобы бэкэнд тоже работал с поддержкой SSL 
>>> в моём случае невозможно.
>>>
>>>
>>
>
>


-- 
Best wishes, Sergej Kandyla
Всегда улыбайтесь жизни и жизнь всегда улыбнется вам!






More information about the nginx-ru mailing list