Здравствуйте!

Наблюдаю проблему с таким конфигом:

http {
        default_type text/plain;

        access_log logs/access.log combined;


        server {
                server_name example.ru;
                listen 443 default;

                ssl on;
                ssl_certificate     example.ru.crt;
                ssl_certificate_key example.ru.key;

                ssl_session_ticket_key ticket.key;

                location / {
                        return 200 "example.ru\n";
                }
        }

        server {
                server_name example.com;
                listen 443;

                ssl on;
                ssl_certificate     example.com.crt;
                ssl_certificate_key example.com.key;

                location / {
                        return 200 "example.com\n";
                }
        }
}

Желаемое поведение:
- для example.ru использовать ticket key из файла.
- для example.com (и всех остальных блоков server) использовать случайный ticket key, генерируемый в nginx при старте.

Что наблюдается:
- Без SNI работает и отдается сертификат example.ru
- Если в SNI указать example.ru - работает и отдается сертификат example.ru
- Если в SNI указать example.com - соединение рвётся с очень неясной 
диагностикой.
- Если в SNI указать example.com, но отключить tickets на клиенте - работает.

Версии
nginx 1.7.0
OpenSSL 1.0.1g-freebsd 7 Apr 2014

Если убрать ssl_session_ticket_key задавать на уровне http, то всё работает. Но хочется брать tickets из файла только для одного сервера.

_______________________________________________
nginx-ru mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить