ПРОЕКТЫ 


  АРХИВ 


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: поведение ssl on/off в разны х server{}


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: поведение ssl on/off в разны х server{}
  • From: umask <umask@xxxxxxxxx>
  • Date: Wed, 23 Mar 2011 11:04:54 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1300867495; bh=DlA2pAek65LJ06CFKMX25BCCjLhJWqzyLnE8tBP46Ck=; h=From:To:In-Reply-To:References:Subject:MIME-Version:Message-Id: Date:Content-Transfer-Encoding:Content-Type; b=TAy9uYm+bU+JuaWBemaBH6vS2fAXozBmhM0ugLcO2I9GLEiPQW6swFotb/zjS4zXJ VcIxEkHC/FlOWSb3o5uOs5SepEgoa3MPPBwsHvwp+dqHFt2qCM0YqJVvAJ/jneLTio aAJBFjKGSz0N6YX/LeO2S/P750jTxUG/5gQMMps0=
  • In-reply-to: <190551300867116@xxxxxxxxxxxxxxxx>
  • References: <190551300867116@xxxxxxxxxxxxxxxx>

Письмо случайно ушло :(


Повторю всё с начало и полность.

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

Есть вот такая конфигурация

====================8<=======================
http {
        server {
                listen 80 default;
                listen 443 ssl default;
                server_name _;

                ssl                  off;
                ssl_certificate      example.pem;
                ssl_certificate_key  example.key;

                location / {
                        rewrite . http://example.ru/ redirect;
                        break;
                }
        }

        server {
                listen       80;
                listen       443 ssl;
                server_name  example.ru;
                ssl                  on;
                ssl_certificate      example.pem;
                ssl_certificate_key  example.key;
                location / {
                        return 500;
                }
        }
}
====================8<=======================

которая успешно работает и выполняет свою цель - если кто-то пришёл на наш IP 
(не по host'у) или прописал на какое-то левое DNS-имя наш IP-адрес, то nginx 
должен редиректить на домен example.ru. Причём не важно пришли ли к нам по HTTP 
или HTTPS (да, будет проблема с невалидным сертификатом, но пока для нас этот 
момент незначим).




В свою очередь конфигурация (ssl on в первом server{}):

====================8<=======================
http {
        server {
                listen 80 default;
                listen 443 ssl default;
                server_name _;

                ssl                  on; # 
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                ssl_certificate      example.pem;
                ssl_certificate_key  example.key;

                location / {
                        rewrite . http://example.ru/ redirect;
                        break;
                }
        }

        server {
                listen       80;
                listen       443 ssl;
                server_name  example.ru;
                ssl                  on;
                ssl_certificate      example.pem;
                ssl_certificate_key  example.key;
                location / {
                        return 500;
                }
        }
}
====================8<=======================

Перестаёт работать ожидаемым образом и происходит следующее (при запросе 
http://pupkin.ru/, pupkin.ru прописан в hosts):
2011/03/23 07:56:53 [info] 90517#0: *15 client sent plain HTTP request to HTTPS 
port while reading client request headers, client: 10.0.32.11, server: _, 
request: "GET / HTTP/1.1", host: "pupkin.ru"

При запросе https://pupkin.ru происходит следующее:

2011/03/23 08:01:04 [notice] 90517#0: *30 "." matches "/", client: 10.0.32.11, 
server: _, request: "GET / HTTP/1.1", host: "pupkin.ru"
2011/03/23 08:01:04 [notice] 90517#0: *30 rewritten redirect: 
"http://example.ru/";, client: 10.0.32.11, server: _, request: "GET / HTTP/1.1", 
host: "pupkin.ru"
2011/03/23 08:01:04 [info] 90517#0: *31 client sent plain HTTP request to HTTPS 
port while reading client request headers, client: 82.179.192.158, server: 
example.ru, request: "GET / HTTP/1.1", host: "example.ru".




Возникает вопрос. Как работает ssl on/off, если в server{} заданы listen 80 и 
listen 80 ssl.

Подскажите, пожалуйста.

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.