Saya tahu bahwa IP khusus diperlukan untuk mengatur SSL. Apa yang terjadi jika kita menambahkan SSL untuk domain yang berbagi IP? (Namevirtualhost)
apache-2.2
ssl
https
certificate
nitin
sumber
sumber
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:
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.
sumber
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.
sumber
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.
sumber
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.
sumber
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 ).
sumber
Saya sedang mengerjakan masalah yang sama. Sebagai pengujian saya, IE7 dan yang lebih baru (Hanya di Win7 & Vista) / Chrome / Firefox / Safari / Opera mendukung "Indikasi Nama Server". Bahkan, jika browser menggunakan Tsl 1.0, itu mendukung "Indikasi Nama Server".
sumber
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.
sumber
Sertifikat UC jelas merupakan cara untuk pergi: http://www.sslshopper.com/unified-communications-uc-ssl-certificates.html
sumber
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).
sumber