Bisakah seseorang menjelaskan perbedaan antara sertifikat-sertifikat ini dengan cara yang disederhanakan? Saya membaca beberapa artikel tetapi sepertinya mereka melakukan pekerjaan yang sama, yaitu mengenkripsi banyak domain dengan satu sertifikat.
ssl
sni
subject-alternative-names
AFA Med
sumber
sumber
Jawaban:
SAN (Nama Alternatif Subjek) adalah bagian dari spesifikasi sertifikat X509 , di mana sertifikat tersebut memiliki bidang dengan daftar nama alternatif yang juga berlaku untuk subjek (di samping satu Nama Umum / CN). Bidang ini dan nama wildcard pada dasarnya adalah dua cara menggunakan satu sertifikat untuk beberapa nama.
SNI (Server Name Indication) adalah ekstensi protokol TLS yang merupakan semacam protokol TLS yang setara dengan HTTP Host-header. Ketika klien mengirim ini, itu memungkinkan server untuk memilih sertifikat yang tepat untuk disajikan kepada klien tanpa batasan untuk menggunakan alamat IP yang terpisah di sisi server (seperti bagaimana header HTTP Host banyak digunakan untuk HTTP biasa).
Perlu dicatat bahwa SNI bukanlah sesuatu yang tercermin dalam sertifikat dan itu benar-benar mencapai kebalikan dari apa yang ditanyakan oleh pertanyaan; itu menyederhanakan memiliki banyak sertifikat, tidak menggunakan satu sertifikat untuk banyak hal.
Di sisi lain, itu sangat tergantung pada situasi jalan mana yang sebenarnya lebih disukai. Sebagai contoh, pertanyaan yang diajukan hampir pasti bukan yang sebenarnya Anda inginkan jika Anda memerlukan sertifikat untuk entitas yang berbeda.
sumber
SAN adalah singkatan dari Subject Alternative Name , dan ini merupakan properti sertifikat x509, dan SNI adalah fitur yang dapat didukung oleh klien SSL / TLS, sehingga entitas yang sama sekali berbeda.
Menggunakan sertifikat dengan SAN, Anda dapat meng-host beberapa situs yang mendukung HTTPS pada satu alamat IP bahkan jika klien tidak mendukung SNI . Dalam hal ini Anda memegang satu sertifikat untuk semua situs Anda, dan sertifikat tersebut harus berisi semua nama situs (
ServerName
atauServerAlias
dalam koordinat apache, atauserver_name
dalam nginx) karena SAN . Ini adalah subset dari pendekatan legacy, yang memperluas "satu situs yang mengaktifkan HTTPS di setiap alamat IP yang terpisah". Saat ini hanya CDN besar yang tetap dengan SAN .Dengan menggunakan SNI, Anda juga dapat meng-host beberapa situs yang mendukung HTTPS pada satu IP, Anda memegang sertifikat x509 terpisah untuk setiap situs dan tidak satupun dari ini menyebutkan nama situs lain di properti SAN mereka , tetapi klien TLS (yaitu browser dan klien konsol seperti
wget
ataucurl
) harus mendukung SNI . Ini adalah pendekatan modern, karena OS terakhir yang tidak mendukung SNI out-of-the-box adalah Windows XP dengan IE 6.x, jika saya ingat dengan benar. Saat ini Anda dapat melihat SAN properti jika Anda membeli wildcard sertifikat - misalnya sertifikat tersebut untuk*.foobar.com
akan berisi Nama umum dari*.foobar.com
dan SAN darifoobar.com
.sumber
Ini menggabungkan dua bagian dari proses sertifikat.
SAN adalah Nama Alternatif Subjek. Ini adalah cara untuk membuat satu sertifikat untuk banyak domain. Anda cukup menambahkan domain lain yang Anda inginkan untuk sertifikat ke bidang SAN di sertifikat. Browser kemudian akan menerima validitas pada domain-domain ini juga.
SNI adalah Indikasi Nama Server dan merupakan bagian dari SSL. Ini memungkinkan Anda untuk meng-host beberapa situs SSL pada satu IP karena nama server yang diinginkan dikirim dengan jabat tangan SSL dan server dapat memilih sertifikat yang benar untuk jawabannya.
sumber
Berikut ini (mungkin) jawaban yang lebih bisa dibaca manusia:
SNI dilakukan di sisi klien dan memberi tahu tumpukan TLS "Saya ingin berbicara dengan server yang bernama [Server X]". Server melihat string [Server X] ini dan membalas dengan sertifikat yang sesuai. Salah satu contoh praktis adalah ketika satu server perlu melayani lalu lintas untuk beberapa domain. Ini juga berguna jika klien menggunakan IP (untuk menghindari keterlambatan pencarian DNS) tetapi sertifikat CN tidak menyebutkan IP.
SAN adalah daftar "Juga Dikenal Sebagai" dalam sertifikat. Dengan cara ini server dapat menggunakan satu sertifikat untuk banyak nama. Satu dapat menambahkan banyak domain ke sertifikat yang sama dan bahkan daftar IP.
Seperti yang Anda lihat, semuanya tumpang tindih. Memilih antara satu atau keduanya tergantung di mana seseorang memiliki kendali atas. Beberapa klien mungkin tidak mengenali nama dalam SAN dan satu-satunya cara untuk mengatasinya adalah dengan memberikan sertifikat yang sesuai berdasarkan SNI. Ada beberapa skenario dimana server menyediakan API untuk satu sertifikat atau klien tidak mengirim SNI. Untuk kasus-kasus ini, SAN adalah satu-satunya jalan keluar.
Perusahaan saya memanfaatkan keduanya. Mereka memberikan fleksibilitas dan membuat kompatibilitas mundur dan maju lebih mudah.
sumber