Jawaban:
Saya pikir ini adalah ide yang bagus bagaimana menjelaskan masalah sebenarnya dengan host virtual dan SSL / TLS.
Saat Anda terhubung ke server apache melalui HTTP, Anda mengirim satu set header http bersama. Mereka terlihat seperti ini:
GET /index.html HTTP/1.1
Host: www.nice-puppies.com
Jika Anda memiliki apache hosting virtual akan melihat bidang host, lalu ambil index.html yang tepat untuk Anda. Masalahnya adalah ketika Anda menambahkan SSL / TLS. Server mengatur enkripsi sebelum Anda mengirim permintaan http Anda. Karenanya server tidak tahu apakah Anda akan mengunjungi www.nice-puppies.com atau www.evil-haxxor.com hingga setelah otentikasi / enkripsi selesai. Server tidak dapat menebak (karena mengirim sertifikat yang salah memberi Anda pesan kesalahan buruk).
Salah satu solusinya adalah sertifikat wildcard (seperti yang disebutkan di atas), yang berlaku untuk * .nice-puppies.com. Dengan begitu Anda dapat menggunakan sertifikat yang sama untuk beberapa domain, tetapi Anda tidak dapat memiliki sertifikat * .com (oke, Anda bisa, tetapi itu akan sangat buruk untuk semua orang), jadi secara umum Anda akan memerlukan IP terpisah untuk masing-masing Domain HTTPS.
Solusi nyata untuk masalah ini adalah "Indikasi Nama Server":
http://en.wikipedia.org/wiki/Server_Name_Indication
Ini hanya mulai diluncurkan ke server dan klien web, jadi ini bukan sesuatu yang benar-benar dapat Anda gunakan sekarang, tapi mudah-mudahan dalam waktu beberapa tahun ini tidak akan menjadi masalah besar.
Masalahnya adalah bahwa sertifikat SSL terikat ke alamat IP bukan nama host. Ketika koneksi masuk pada alamat IP untuk permintaan HTTPS, tindakan pertama adalah membangun komunikasi SSL dengan melewati sertifikat server dan / atau sertifikat klien. Selama tahap jabat tangan koneksi ini, server Apache tidak memiliki cara untuk mengetahui untuk apa permintaan akan datang. Ini berbeda untuk lalu lintas HTTP (non-SSL) karena setelah koneksi dibuat server Apache dapat menentukan konfigurasi host virtual untuk digunakan jika klien mengirim Host
header atau menyerahkannya ke host virtual pertama yang dikonfigurasi.
Jika Anda memiliki beberapa host virtual di bawah domain yang sama, Anda dapat mengatur sertifikat wildcard tunggal pada alamat IP dan memiliki beberapa host virtual dengan nama server yang berbeda ditentukan; namun, jika nama server tersebut tidak di bawah nama domain yang sama mereka akan menghasilkan kesalahan server klien. Ini akan berfungsi karena sertifikat wildcard akan valid untuk semua nama host di bawah nama domain itu. Anda akan memerlukan alamat IP lain jika nama domain berbeda karena sertifikat pertama yang ditentukan untuk alamat IP tersebut akan menjadi yang disajikan untuk menghubungkan klien.
Ini dapat ditambahkan ke dalam satu sertifikat ssl tunggal sebagai SAN (Nama Alternatif Subjek). Dalam pengalaman saya, saya harus meminta sertifikat organisasi. saya menggunakan globalsign.
Sebenarnya, dengan perangkat lunak modern Anda BISA melayani beberapa situs HTTPS melalui satu alamat IP, menggunakan fitur baru yang disebut 'SNI - Server Name Indication'.
http://en.wikipedia.org/wiki/Server_Name_Indication
http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
Saya belum pernah menggunakan ini sendiri, tetapi kedengarannya bagus untuk situs internal dan intranet. Sebagian besar browser modern mendukung SNI. IE6 tidak mendukung SNI, tetapi IE7 mendukung.
(Koreksi: 20100426 - SNI sama sekali tidak didukung pada Windows XP. Windows Vista dan di atasnya mendukung SNI. Lihat "Bagian 2.2.3" di http://msdn.microsoft.com/en-us/library/dd208005% 28v = PROT.13% 29.aspx # id8 ).
Saya pikir OP menanyakan apa yang terjadi jika dia menambahkan sertifikat SSL ke IP yang memiliki banyak host virtual. Jika tidak ada virtualhost lain yang menggunakan sertifikat SSL maka ia harus jelas.
Sertifikat UC jelas merupakan cara untuk pergi: http://www.sslshopper.com/unified-communications-uc-ssl-certificates.html
Jika Anda akan mencoba menambahkan dua sertifikat pada IP yang sama, hanya sertifikat baca pertama yang akan digunakan di mana-mana. Satu IP - satu sertifikat SSL.
Jika Anda ingin mendapatkan lebih banyak sertifikat SSL pada IP yang sama, pertimbangkan untuk mendapatkan beberapa domain (disebut UCC - lihat di @ godaddy ) atau sertifikat wildcard (lebih mahal).