Apakah setiap server di belakang load balancer memerlukan sertifikat SSL mereka sendiri?

66

Jika Anda memiliki 5 server web di belakang load balancer (seperti haproxy) dan mereka menyajikan konten untuk domain yang sama, apakah Anda memerlukan sertifikat SSL untuk semua server, atau dapatkah Anda menggunakan sertifikat yang sama di setiap server?

Saya tahu Anda bisa meletakkan semua permintaan SSL pada server tertentu, tetapi itu membutuhkan info sesi yang didistribusikan dan berharap itu tidak terjadi.

Derek Gathright
sumber

Jawaban:

66

Jika Anda memiliki 5 server web di belakang load balancer (...), apakah Anda memerlukan sertifikat SSL untuk semua server,

Tergantung.

Jika Anda melakukan load balancing pada lapisan TCP atau IP (OSI layer 4/3, alias L4, L3), maka ya, semua server HTTP harus memiliki sertifikat SSL yang diinstal.

Jika Anda memuat saldo pada lapisan HTTPS (L7), maka Anda biasanya akan menginstal sertifikat pada penyeimbang beban saja, dan menggunakan HTTP tidak terenkripsi polos melalui jaringan lokal antara penyeimbang beban dan server web (untuk kinerja terbaik pada server web).

Jika Anda memiliki instalasi besar , maka Anda mungkin melakukan Internet -> load balancing L3 -> lapisan L7 konsentrator SSL -> load balancers -> lapisan server aplikasi HTTP L7 ...

Willy Tarreau, penulis HAProxy, memiliki ikhtisar yang sangat bagus tentang cara kanonik untuk menyeimbangkan HTTP / HTTPS .

Jika Anda menginstal sertifikat di setiap server, maka pastikan untuk mendapatkan sertifikat yang mendukung ini. Biasanya sertifikat dapat diinstal pada beberapa server, selama semua server melayani lalu lintas untuk satu Nama Domain yang Memenuhi Kualifikasi Saja. Tetapi verifikasi apa yang Anda beli, penerbit sertifikat dapat memiliki portofolio produk yang membingungkan ...

Jesper Mortensen
sumber
1
Anda dapat membeli sertifikat dengan Nama Alternatif Subjek dari banyak penerbit sekarang. Bidang SAN memungkinkan sertifikat yang valid untuk beberapa FQDN. PERINGATAN ... Mungkin ada beberapa masalah dengan klien web yang lebih lama (IE6!), Dalam beberapa kasus klien tidak akan membaca atribut SAN jika atribut Subjek memiliki FQDN yang tidak valid.
Ryan Fisher
4
Plus 1 untuk menautkan ke artikel yang sangat bagus dari Willy Tarreau.
Nathan Hartley
Dalam instalasi menengah hingga besar, melakukan pembongkaran SSL di IP Besar atau penyeimbang beban lainnya (opsi kedua yang tercantum di atas) memiliki keuntungan menjadi lebih cepat, lebih skalabel, lebih rumit (umumnya satu sertifikat pada LB) dan lebih murah dari sertifikat sisi lisensi (multi-domain dan sertifikat SAN menjadi mahal).
Darrell Teague
15

Anda harus dapat menggunakan sertifikat yang sama di setiap server. Jika situs web Anda adalah www.gathright.com, Anda seharusnya dapat membeli sertifikat untuk FQDN itu. Kemudian Anda menginstalnya di masing-masing 5 server Anda di belakang penyeimbang.

Atau, Anda dapat memperoleh sertifikat terpisah untuk setiap server web, tetapi sertakan 'www.gathright.com' sebagai "Nama Alternatif Subjek", yang berarti masing-masing dari 5 sertifikat tersebut akan valid untuk SSL ke FQDN umum serta SSL ke FQDN server tertentu.

Ryan Fisher
sumber
6
Untuk memperjelas respons ini, Anda akan menginstal sertifikat pada server yang menghasilkan permintaan. Anda kemudian akan mengekspor sertifikat dari server itu bersama dengan kunci pribadi untuk mengimpornya di server lain.
Charles
Doh! Ya, saya lupa menyebutkan bahwa Anda perlu mengekspor kunci pribadi. Terima kasih, Charles.
Ryan Fisher
Tetapi jika saya menggunakan sertifikat SAN pada setiap server, apakah mereka masing-masing memerlukan kunci privat yang sama?
anschoewe
@anschoewe, tidak. Mereka masing-masing akan memiliki kunci pribadi mereka sendiri dan Anda harus membayar x5 harganya jika Anda memiliki 5 komputer.
Alexis Wilke
1
@AlexisWilke - tidak yakin apa artinya: jika mereka menggunakan sertifikat SAN, mereka hanya perlu satu sertifikat, dan karena itu satu kunci, dan karenanya 1 harga. Sertifikat SAN dapat digunakan pada beberapa server untuk melayani satu atau beberapa domain; harga naik ketika menambahkan domain , bukan saat menambahkan server
dwanderson
12

YA , Anda dapat menggunakan sertifikat yang sama dan kunci pribadi terkait di semua server Anda, jika mereka berada di belakang load balancer atau proxy penyeimbang beban yang menyeimbangkan dan jika mereka semua menyajikan konten untuk domain yang sama.

Sertifikat, ketika ditandatangani oleh otoritas sertifikat, menyatakan bahwa otoritas sertifikat memverifikasi nama yang tercantum pada sertifikat. Untuk sertifikat untuk situs web, itu berarti nama domain situs web tersebut. Peramban Anda mengharapkan server tempat ia berbicara, jika berbicara melalui HTTPS, menyajikan sertifikat dengan nama yang sama dengan nama domain yang menurut peramban dibicarakan oleh peramban. (Misalnya, VeriSign tidak mungkin menandatangani sertifikat Hacker Joe untuk bankofamerica.com. Jadi, bahkan jika Hacker Joe berhasil mencegat lalu lintas antara Anda dan bankofamerica.com, Hacker Joe tidak akan memiliki sertifikat yang ditandatangani untuk bankofamerica.com dan browser Anda. akan memasang bendera peringatan merah besar di semua tempat.)

Yang penting adalah bahwa nama pada sertifikat cocok dengan nama domain yang menurut peramban itu berbicara. Anda dapat menggunakan sertifikat yang sama (dengan kunci privat terkait) yang memuat nama yang benar di beberapa server web dalam sebuah cluster web, asalkan mereka berada di belakang load balancer.

Anda juga dapat menggunakan penyeimbang beban yang mengakhiri SSL, dalam hal ini Anda akan menggunakan sertifikat (dengan kunci pribadi terkait) pada penyeimbang beban, dan server web tidak akan memerlukan sertifikat karena mereka tidak akan ada hubungannya dengan SSL.

yfeldblum
sumber
6

Pengaturan kami telah bekerja dengan sangat baik:

https trafic
     |
   pound
     |
http traffic
     |
  haproxy
     |
http traffic 
     |
web server 1 ... web server n

Dengan cara ini pound mendekripsi lalu lintas, mulai dari sini semuanya langsung http. Keuntungan: lebih sedikit konfigurasi pada server web, satu alat untuk setiap pekerjaan. Anda dapat memaksimalkan CPU pada mesin pound, dan menjaga server web "normal". Anda harus mendapatkan setidaknya dua dari masing-masing (pound, haproxy, server web), jika uptime penting.

jotango
sumber
2
Ini juga mengasumsikan bahwa komputer backend Anda berada di jaringan pribadi yang aman. Di awan itu tidak selalu terjadi ...
Alexis Wilke
3

AFAIR, Anda dapat menggunakan sertifikat yang sama di setiap server. Anda juga dapat menerapkan akselerator SSL dan membongkar semua lalu lintas SSL ke sana.

joeqwerty
sumber