Jak zdefiniować, który certyfikat SSL nginx wysyła jako pierwszy za pomocą SNI?


12

Używam nginx 1.2.7 z OpenSSL 0.9.8o na Debian Squeeze dla około 30 domen. Na dwóch z nich włączyłem SSL, który działa dobrze na obu.

Konfiguracja SSL jest używana dla obu domen:

listen 443 ssl;
ssl_certificate /etc/nginx/ssl/example.org-unified.crt;
ssl_certificate_key /etc/nginx/ssl/example.org.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security max-age=600000;

Sprawdzanie obu domen za pomocą narzędzia ssllabs.com Checker dostaję dla jednej domeny komunikat „Ta strona działa tylko w przeglądarkach z obsługą SNI”. W przypadku drugiej domeny nie otrzymuję tej wiadomości. Wygląda na to, że nginx domyślnie wysyła certyfikat dla pierwszej alfabetycznie domeny do klientów bez obsługi SNI. Czy mogę zmienić to zachowanie?

Innymi słowy: chcę skonfigurować nginx, aby jedna konkretna domena z SSL działała nawet dla klientów bez obsługi SNI. Inne domeny również powinny współpracować z SSL, ale jest OK, jeśli działa tylko na klientach obsługujących SNI.

Dzięki!

Odpowiedzi:


20

default_serverUstawienie listendyrektywy powinien określić, który certyfikat jest wysyłany na życzenie bez zestawu SNI w uścisku. Zmień listendyrektywę na żądaną wartość domyślną:

listen 443 default_server ssl;
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.