Pilihan sertifikat SSL berdasarkan host-header: apakah mungkin?

17

Apakah mungkin server web memilih sertifikat SSL untuk digunakan berdasarkan host-header koneksi yang masuk, atau apakah informasi itu hanya tersedia setelah koneksi SSL dibuat?

Yaitu, bisakah server web saya terdaftar di port 443 dan menggunakan sertifikat foo.com jika https://foo.com diminta, dan sertifikat bar.com jika https://bar.com diminta atau saya coba lakukan sesuatu yang mustahil karena server harus membuat koneksi SSL sebelum ia tahu apa yang diinginkan klien?

DrStalker
sumber

Jawaban:

23

Secara historis, pernyataan pertama Anda akurat. Sekarang, ada beberapa opsi:

  • Sertifikat wildcard jika subdomain dalam domain yang sama.
  • Sertifikat SAN / UCC untuk menentukan nama alternatif untuk sertifikat, sehingga dapat melayani beberapa sertifikat.
  • SNI diperkenalkan untuk membuat koneksi SSL setelah header Host. Namun, ini memiliki dukungan terbatas, karena lebih baru.

Ini telah dijawab berkali-kali di ServerFault oleh saya dan orang lain. Saya sarankan mencari detail lebih lanjut kecuali Anda memiliki pertanyaan spesifik.

Warner
sumber
4
Saya pergi mencari dan tidak dapat menemukan apa pun; ini mungkin salah satu dari hal-hal yang hanya mudah dicari jika Anda tahu jawabannya sehingga Anda dapat memasukkannya dalam istilah pencarian. Terima kasih.
DrStalker
3
Jika ada jawaban yang ada di ServerFault, alangkah baiknya untuk menautkannya.
organicveggie
serverfault.com/search , @organicveggie.
Warner
3
SNI tidak membangun koneksi SSL setelah header Host, tetapi menyertakan nama host di jabat tangan SSL. Bukan berarti itu penting jika Anda bukan pengembang SSL.
Bart van Heukelom
Mencari Serverfault memberikan ini sebagai jawabannya. Itu berarti bahwa pertanyaan lain secara kanonik adalah duplikat dari pertanyaan ini. Itu link yang Anda disertakan tidak memiliki hasil.
Ian Boyd
5

Untuk memperluas jawaban Warner: halaman CAcert, Vhost Task Force membandingkan beberapa metode untuk menggunakan beberapa domain pada satu server. Saya pribadi menggunakan Indikasi Nama Server .

pengguna1686
sumber
Bagaimana Anda mengatasi pengguna Windows XP, pengguna Android, pengguna Blackberry, dll?
thomasrutter
3

Jawaban singkat: tidak

HTTP dienkapsulasi di dalam SSL , sehingga informasi apa pun tentang permintaan tidak dapat diakses hingga koneksi telah dibuat. Oleh karena itu sampai sertifikat diberikan kepada klien. Tidak ada cara untuk menggunakan header atau info terenkripsi lainnya, karena masih belum tersedia.

EDIT: ini benar jika Anda ingin sekarang menjadi peramban silang dan sepenuhnya portabel. Seperti yang dikatakan oleh orang lain ada beberapa metode baru yang muncul memungkinkan dalam waktu dekat.

drAlberT
sumber
1

atau apakah informasi itu hanya tersedia setelah koneksi SSL dibuat?

Benar. Koneksi SSL dibuat sebelum setiap bagian dari permintaan HTTP (termasuk host header) dikirim.

Richard
sumber
2
Itu tidak lagi sepenuhnya akurat.
Warner