Cara Mengatur Penghentian SSL HAProxy di Ubuntu 22.04

Dalam panduan kami sebelumnya, kami mendemonstrasikan cara menginstal dan mengkonfigurasi HAProxy sebagai penyeimbang beban di Ubuntu 22.04. Panduan ini merupakan kelanjutan dari panduan itu dan, kami akan melangkah lebih jauh dan mendemonstrasikan cara mengatur penghentian SSL HAPrpxy di Ubuntu 22.04 langkah demi langkah.

HA Proxy adalah penyeimbang beban HTTP dan solusi proxy yang banyak digunakan dan opensource untuk Linux, Solaris, dan lingkungan FreeBSD. Ini digunakan untuk meningkatkan kinerja dan keandalan server web dengan mendistribusikan beban kerja di beberapa server. Dengan demikian, ini menyediakan ketersediaan layanan dan aplikasi yang tinggi.

Penghentian SSL

Panduan sebelumnya tidak mempertimbangkan enkripsi lalu lintas web yang melewati penyeimbang beban Proxy HA. Lalu lintas masuk yang melewati penyeimbang beban dalam teks biasa dan, oleh karena itu, tidak aman dan rentan terhadap penyadapan oleh pihak ketiga yang jahat.

HAProxy dapat dikonfigurasi untuk mengenkripsi lalu lintas yang diterimanya sebelum mendistribusikannya ke beberapa server backend. Ini adalah pendekatan yang lebih disukai daripada mengenkripsi server backend individu yang dapat menjadi proses yang membosankan Di sinilah penghentian SSL masuk.

The HAProxy mengenkripsi lalu lintas antara dirinya dan klien dan kemudian menyampaikan pesan dalam teks yang jelas ke server backend di Anda jaringan internal. Kemudian mengenkripsi respons dari server backend dan menyampaikannya ke klien

Sertifikat TLS/SSL disimpan hanya di penyeimbang beban HAProxy daripada di beberapa server backend, sehingga mengurangi beban kerja di server.

Untuk mendemonstrasikan penghentian SSL, kami akan mengamankan dan konfigurasikan penyeimbang beban HAProxy dengan Let’s encrypt certificate.

Agar ini berfungsi, Anda memerlukan Nama Domain yang Memenuhi Syarat Sepenuhnya (FQDN) atau hanya nama domain terdaftar yang diarahkan ke alamat IP publik HAProxy Anda. Dalam panduan ini, kami memiliki domain bernama linuxtechgeek.info yang menunjuk ke IP publik HAProxy kami.

Langkah 1) Instal Certbot

Untuk mendapatkan sertifikat SSL/TL dari Let’s Encrypt Authority, Anda harus menginstal certbot terlebih dahulu. Perangkat lunak bebas dan sumber terbuka Certbotis yang digunakan untuk mengotomatiskan penyebaran sertifikat SSL Let’s Encrypt di situs web.

Untuk menginstal login certbot ke server HAProxy dan, pertama, perbarui indeks paket lokal:
$ sudo apt update

Selanjutnya, instal certbot menggunakan perintah berikut :
$ sudo apt install -y certbot python3-certbot-apache

Paket python3-certbot-apache adalah plugin yang memungkinkan Cerbot bekerja dengan Apache. Dengan certbot terinstal, sekarang kita dapat melanjutkan untuk mendapatkan sertifikat SSL.

Langkah 2) Memperoleh Sertifikat SSL

Let’s Encrypt menyediakan sejumlah cara untuk mendapatkan Sertifikat SSL menggunakan berbagai plugin. Sebagian besar plugin hanya membantu dalam mendapatkan sertifikat yang memerlukan konfigurasi manual dari server web. Plugin ini disebut ‘authenticator’ karena mereka hanya memeriksa apakah server harus mengeluarkan sertifikat.

Dalam panduan ini, kami akan menunjukkan kepada Anda cara mendapatkan sertifikat SSL menggunakan plugin Standalone. Plugin ini menggunakan metode yang mulus untuk mendapatkan sertifikat SSL. Ia melakukannya dengan memunculkan server web kecil untuk sementara pada port 80 di mana Let’s Encrypt CA dapat terhubung dan memvalidasi identitas server Anda sebelum mengeluarkan sertifikat.

Karena itu, Anda perlu memastikan bahwa tidak ada layanan yang mendengarkan pada port 80. Untuk memeriksa layanan mana mendengarkan pada port 80, jalankan perintah.
$ netstat -na | grep ‘:80.*LISTEN’

Jika Apache berjalan di server HAProxy, hentikan seperti yang ditunjukkan.
$ sudo systemctl stop apache2

Selanjutnya, jalankan certbot menggunakan plugin mandiri untuk mendapatkan sertifikat
$ sudo certbot certonly –standalone –preferred- tantangan http –http-01-port 80 -d linuxtechgeek.info -d www.linuxtechgeek.info

Plugin akan memandu Anda melalui serangkaian petunjuk. Anda akan diminta untuk memberikan alamat email Anda dan kemudian menyetujui Persyaratan Layanan Let’s Encrypt. Selain itu, Anda dapat memutuskan untuk ikut serta menerima email EFF tentang berita dan kampanye seputar kebebasan digital.

Jika semuanya berjalan lancar, sertifikat dan kunci SSL akan berhasil disimpan di server. File-file ini sendiri disimpan di direktori /etc/letsencrypt/archives, tetapi certbot membuat tautan simbolis ke /etc/letsencrypt/live/your_domain_name path.

Setelah sertifikat diperoleh, Anda akan memiliki file-file berikut di /etc /letsencrypt/live/your_domain_name directory.
cert.pem  – Ini adalah certificate.chain.pem domain Anda – Ini Let’s Encrypt chain certificate.fullchain.pem – Berisi kombinasi cert.pem dan chain.pemprivkey.pem – Kunci pribadi ke sertifikat Anda.
Langkah 3) Konfigurasi HAProxy untuk menggunakan Sertifikat SSL

Untuk HAProxy untuk melakukan Penghentian SSL – sehingga mengenkripsi lalu lintas web antara dirinya dan klien atau pengguna akhir – Anda harus menggabungkan file fullchain.pem dan privkey.pem menjadi satu file .

Tapi sebelum melakukannya, buat direktori tempat semua file akan ditempatkan.
$ sudo mkdir -p /etc/haproxy/certs

Selanjutnya, buat file gabungan menggunakan perintah cat sebagai berikut.
$ DOMAIN=’linuxtechgeek. info’ sudo -E bash -c ‘cat /etc/letsencrypt/live/$DOMAIN/fullchain.pem /etc/letsencrypt/live/$DOMAIN/privkey.pem > /etc/haproxy/certs/$DOMAIN.pem’

Next , amankan file dengan menetapkan izin berikut ke direktori menggunakan perintah chomd.
$ sudo chmod -R go-rwx /etc/haproxy/certs

Sekarang akses file konfigurasi HAProxy.
$ sudo vim /etc/haproxy/haproxy.cfg

Dalam bagian frontend tambahkan entri yang mengikat IP server Anda ke port 443 diikuti dengan jalur ke key.
bind gabungan haproxy-ip:443 ssl crt /etc/haproxy/certs/domain.pem

Untuk menerapkan pengalihan dari HTTP ke HTTPS, tambahkan yang berikut entry.
redirect skema https jika !{ ssl_fc }

Simpan perubahan dan keluar dari file konfigurasi. Pastikan untuk mengonfirmasi bahwa sintaks untuk HAProxy baik-baik saja menggunakan sintaks berikut.
$ sudo haproxy -f /etc/haproxy/haproxy.cfg -c

Untuk menerapkan perubahan yang dibuat, mulai ulang HAProxy
$ sudo systemctl restart haproxy

Dan pastikan itu berjalan.
$ sudo systemctl status haproxy

Langkah 4) Memverifikasi Pemutusan SSL

Terakhir, segarkan browser Anda, dan kali ini, Anda akan menemukan bahwa penyeimbang beban Anda sekarang diamankan dengan TLS/SSL sebagaimana dibuktikan dengan ikon gembok di bilah URL. panduan, kami telah menunjukkan cara mengatur penghentian SSL dengan HAProxy di Ubuntu 22.04. Umpan balik Anda diterima.