Hello! On Tue, May 06, 2014 at 03:46:36PM +0400, Anton Yuzhaninov wrote:
> Здравствуйте! > > Наблюдаю проблему с таким конфигом: > > 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 из файла только для одного сервера. В OpenSSL всё очень плохо в части кеширования сессий (что с тикетами, что без) при использовании SNI. Когда я последний раз на это смотрел - ушёл из кода OpenSSL с желанием это развидеть, и стойким ощущением, что не надо искать неприятностей и пытаться делать разные настройки кеширования в разных SNI-серверах. -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru