Bagaimana cara menentukan sertifikat SSL yang nginx kirim pertama dengan SNI?

12

Saya menggunakan nginx 1.2.7 dengan OpenSSL 0.9.8o pada Debian Squeeze selama sekitar 30 domain. Pada dua dari mereka saya mengaktifkan SSL yang berfungsi dengan baik pada keduanya.

Konfigurasi SSL digunakan untuk kedua domain:

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;

Memeriksa kedua domain dengan pemeriksa ssllabs.com, saya mendapatkan pemberitahuan untuk satu domain, "Situs ini hanya berfungsi di browser dengan dukungan SNI.". Untuk domain lain saya tidak mendapatkan pesan ini. Sepertinya nginx secara default mengirimkan sertifikat untuk domain alfabet pertama ke klien tanpa dukungan SNI. Bisakah saya mengubah perilaku ini?

Dengan kata lain: Saya ingin mengonfigurasi nginx agar memiliki satu domain spesifik dengan SSL yang berfungsi bahkan untuk klien tanpa dukungan SNI. Domain lain harus bekerja dengan SSL juga, tetapi tidak apa-apa jika hanya bekerja pada klien yang mengaktifkan SNI.

Terima kasih!

Cuka Apel
sumber

Jawaban:

20

The default_serverpengaturan dari listendirektif harus menentukan sertifikat dikirim untuk permintaan tanpa SNI set di jabat tangan. Ubah listenarahan dari standar yang diinginkan:

listen 443 default_server ssl;
Shane Madden
sumber