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
|