GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Mengaktifkan HTTPS untuk Varnish Cache menggunakan Hitch di CentOS-RHEL 8

Tembolok Pernis tidak memiliki dukungan asli untuk SSL/TLS dan protokol lain yang terkait dengan port 443 . Jika Anda menggunakan Cache Pernis untuk meningkatkan kinerja aplikasi web, Anda perlu menginstal dan mengonfigurasi perangkat lunak lain yang disebut SSL/TLS proxy terminasi, untuk bekerja bersama Varnish Cache untuk mengaktifkan HTTPS .

Halangan adalah proxy SSL/TLS open source gratis, berbasis libev, dan skalabel yang dirancang untuk Varnish Cache , yang saat ini berfungsi di Linux, OpenBSD, FreeBSD, dan MacOSX. Ini mengakhiri koneksi TLS/SSL dengan mendengarkan pada port 443 (port default untuk HTTPS koneksi) dan meneruskan lalu lintas yang tidak terenkripsi ke Varnish Cache , namun, itu juga harus bekerja dengan backend lain.

Mendukung TLS1.2 dan TLS1.3 dan TLS 1.0/1.1 yang lama , mendukung ALPN (Negosiasi Protokol Lapisan Aplikasi ) dan NPN (Negosiasi Protokol Berikutnya ) untuk HTTP/2 , protokol PROXY untuk memberi sinyal IP/port klien ke backend, koneksi soket domain UNIX ke asal, SNI (Indikasi Nama Server ), dengan dan tanpa sertifikat wildcard. Selain itu, ini berfungsi dengan baik untuk instalasi besar yang membutuhkan hingga 15.000 soket mendengarkan dan 500.000 sertifikat.

Sebagai kelanjutan dari dua artikel kami sebelumnya tentang memasang Varnish Cache untuk Nginx dan Apache Server HTTP, panduan ini menunjukkan untuk mengaktifkan HTTPS untuk Tembolok Pernis menggunakan Proxy TLS Hitch di CentOS/RHEL 8 .

Diagram Logis Pengaturan Kami

Panduan ini mengasumsikan bahwa Anda telah memasang Varnish untuk Nginx atau Apache server web, jika tidak, lihat:

  • Cara Menginstal Varnish Cache 6 untuk Server Web Nginx di CentOS/RHEL 8
  • Cara Menginstal Varnish Cache 6 untuk Server Web Apache di CentOS/RHEL 8

Langkah 1:Instal Hitch di CentOS/RHEL 8

1. Halangan paket disediakan di EPEL (Paket Ekstra untuk Enterprise Linux ) penyimpanan. Untuk menginstalnya, pertama-tama aktifkan EPEL pada sistem Anda dan kemudian instal paket setelahnya. Jika Anda tidak memiliki OpenSSL paket terinstal, instal juga.

# dnf install epel-release
# dnf install hitch openssl

Instal Hitch di CentOS 8

2. Ketika instalasi paket selesai, Anda harus mengonfigurasi Varnish Cache untuk bekerja Halangan . Anda juga perlu mengonfigurasi Hitch untuk menggunakan SSL/TLS . Anda sertifikat dan Pernis sebagai backend . File konfigurasi utama Hitch terletak di /etc/hitch/hitch.conf , yang dijelaskan di bawah ini.

Langkah 2:Mengonfigurasi Cache Pernis untuk Hitch

3. Selanjutnya, aktifkan Varnish untuk mendengarkan port tambahan (8443 dalam kasus kami) menggunakan PROXY dukungan protokol, untuk komunikasi dengan Hitch .

Jadi buka Varnish systemd file layanan untuk diedit.

# systemctl edit --full varnish

Cari baris ExecStart dan tambahkan -a additional tambahan tandai dengan nilai 127.0.0.1:8443,proxy . Menggunakan nilai 127.0.0.1:8443 berarti Varnish hanya akan menerima koneksi internal (dari proses yang berjalan di server yang sama yaitu halangan dalam kasus ini) tetapi bukan koneksi eksternal.

ExecStart=/usr/sbin/varnishd -a :80 -a 127.0.0.1:8443,proxy -f /etc/varnish/default.vcl -s malloc,256m 

Setel Port Pendengar Varnish untuk Hitch

Simpan file, lalu mulai ulang layanan Varnish untuk menerapkan perubahan terbaru.

# systemctl restart varnish

Langkah 3:Mendapatkan Sertifikat SSL/TLS

4. Di bagian ini, kami akan menjelaskan cara membuat SSL/TLS bundel sertifikat untuk digunakan di bawah Hitch . Untuk panduan ini, kami akan menjelaskan berbagai opsi tentang cara menggunakan sertifikat yang ditandatangani sendiri, sertifikat komersial, atau sertifikat dari Let's Encrypt .

Untuk membuat sertifikat yang ditandatangani sendiri (yang hanya boleh Anda gunakan di lingkungan pengujian lokal), Anda dapat menggunakan OpenSSL alat.

# mkdir /etc/ssl/tecmint.lan
# cd /etc/ssl/tecmint.lan/
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout  tecmint.lan.key -out tecmint.lan.crt

Kemudian buat bundel sertifikat dan kunci sebagai berikut.

# cat tecmint.crt tecmint.key >tecmint.pem

Catatan :Untuk penggunaan produksi, Anda dapat membeli sertifikat dari Otoritas Sertifikat commercial komersial (CA ) atau dapatkan sertifikat gratis, otomatis, dan diakui sepenuhnya dari Let's Encrypt . Kemudian buat bundel PEM.

Jika Anda membeli sertifikat dari CA komersial , Anda perlu menggabungkan kunci pribadi, sertifikat, dan bundel CA seperti yang ditunjukkan.

# cat example.com.key example.com.crt example.com-ca-bundle.crt > /etc/ssl/example.com.pem 

Untuk Ayo Enkripsi , sertifikat, kunci pribadi, dan rantai lengkap akan disimpan di bawah /etc/letsencrypt/live/example.com/ , jadi buat bundel seperti yang ditunjukkan.

# cat /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem >/etc/letsencrypt/live/example.com/example.com_bundle.pem

Langkah 4:Mengonfigurasi dan Memulai Hitch

5. Selanjutnya, konfigurasikan Varnish sebagai backend untuk Hitch dan tentukan SSL/TLS file sertifikat yang akan digunakan untuk HTTPS , di Halangan file konfigurasi utama, buka untuk diedit.

# vi /etc/hitch/hitch.conf

Tampilan depan bagian mendefinisikan alamat IP dan port Hitch akan mendengarkan. Konfigurasi default adalah mendengarkan di semua IPv4 dan IPv6 antarmuka terpasang pada server dan berjalan pada port 443 dan menangani HTTPS . yang masuk permintaan, menyerahkannya ke Varnish .

Ubah backend default port proxy dari 6086 ke 8443 (port yang digunakan untuk meneruskan permintaan ke Varnish ) di Halangan file konfigurasi, menggunakan backend parameter. Juga, tentukan file sertifikat menggunakan pem-file parameter seperti yang ditunjukkan.

backend = "[127.0.0.1]:8443"
#pem-dir = "/etc/pki/tls/private"
pem-file = "/etc/ssl/tecmint.lan/tecmint.pem"

Konfigurasi Hitch sebagai Proxy SSL/TLS untuk Varnish

Simpan file dan tutup.

6. Sekarang mulai halangan service dan mengaktifkannya untuk memulai secara otomatis saat boot sistem. Perhatikan bahwa --now beralih ketika digunakan dengan mengaktifkan, memulai layanan systemd juga dan kemudian memeriksa status untuk melihat apakah itu aktif dan berjalan sebagai berikut.

# systemctl enable --now hitch
# systemctl status hitch

Verifikasi Status Hitch

7. Sebelum melanjutkan untuk menguji apakah situs web/aplikasi Anda sekarang berjalan di HTTPS , Anda harus mengizinkan HTTPS port layanan 443 di firewall untuk mengizinkan permintaan yang ditujukan ke port tersebut di server untuk melewati firewall.

# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

Langkah 5:Menguji Penghentian SSL/TLS dengan Penyiapan Varnish Cache-Hitch

8. Sekarang saatnya untuk menguji Varnish Cache-Hitch mendirikan. Buka browser web dan gunakan domain atau IP server Anda untuk menavigasi HTTPS .

https://www.example.com
OR
https://SERVER_IP/

Setelah halaman indeks aplikasi web Anda dimuat, periksa HTTP header untuk mengonfirmasi bahwa konten disajikan melalui Varnish Cache .

Untuk melakukannya, klik kanan pada halaman web yang dimuat, pilih Periksa dari daftar opsi untuk membuka alat pengembang. Kemudian klik Jaringan tab, dan Muat ulang halaman, lalu pilih permintaan untuk melihat header HTTP, seperti yang disorot pada tangkapan layar berikut.

Periksa Pengaturan HTTPS di Cache Pernis

Langkah 6:Mengarahkan HTTP ke HTTPS di Varnish Cache

9. Untuk menjalankan situs web Anda di HTTPS hanya, Anda perlu mengarahkan ulang semua HTTP lalu lintas ke HTTPS . Anda dapat melakukannya dengan menambahkan konfigurasi berikut di file konfigurasi Hitch Anda.

# vi /etc/hitch/hitch.conf 

Pertama, tambahkan baris import std; tepat di bawah vlc 4.0; , lalu cari vlc_recv subrutin, yang merupakan subrutin VCL pertama yang dieksekusi segera setelah Varnish Cache telah menguraikan permintaan klien ke dalam struktur data dasarnya. Di sinilah kita dapat memodifikasi header permintaan dan menjalankan synth untuk mengarahkan permintaan klien.

Ubah menjadi seperti ini.

sub vcl_recv {
    if (std.port(server.ip) != 443) {
        set req.http.location = "https://" + req.http.host + req.url;
        return(synth(301));
    }
}

Perhatikan bahwa PROXY protokol mengaktifkan Varnish untuk melihat Hitch's port mendengarkan 443 dari server.ip variabel. Jadi baris std.port(server.ip) mengembalikan nomor port tempat koneksi klien diterima.

Jika porta bukan 443 untuk HTTPS (seperti yang diperiksa oleh (std.port(server.ip) !=443) ), subrutin akan menyetel tajuk Lokasi HTTP permintaan (setel req.http.location ) ke permintaan aman (“https:// ” + req.http.host + req.url ) cukup meminta browser web untuk memuat HTTPS versi halaman web (yaitu pengalihan URL).

Lokasi header akan dikirim ke vcl_synth subrutin (yang dipanggil menggunakan return(synth(301))) ) dengan kode status HTTP 301 (Dipindahkan secara permanen ).

10. Selanjutnya, tambahkan subrutin vcl_synth berikut (salah satu dari banyak kasus penggunaannya adalah mengarahkan pengguna), untuk memproses synth di atas.

sub vcl_synth {
        if (resp.status == 301) {
                set resp.http.location = req.http.location;
		  set resp.status = 301;
                return (deliver);
        }
}

Ini memeriksa apakah status respons 301 , tajuk Lokasi HTTP dalam respons disetel ke tajuk Lokasi HTTP dalam permintaan yang sebenarnya merupakan pengalihan ke HTTPS dan menjalankan tindakan pengiriman.

Tindakan deliver membuat respons dengan respons dari backend, menyimpan respons dalam cache, dan mengirimkannya ke klien.

Konfigurasikan Hitch untuk Mengarahkan HTTP ke HTTPS

Simpan file dan tutup.

11. Sekali lagi, terapkan perubahan baru dalam konfigurasi Varnish dengan memulai ulang layanan. Kemudian gunakan alat baris perintah curl untuk mengonfirmasi pengalihan dari HTTP ke HTTPS .

# systemctl restart varnish
# curl -I http://eaxmple.com/

Periksa Pengalihan HTTP ke HTTPS

Dari browser, responnya juga sama seperti pada screenshot berikut.

Periksa Pengalihan HTTP ke HTTPS di Browser

Kami berharap bahwa semuanya telah bekerja dengan baik sampai saat ini. Jika tidak, berikan komentar atau pertanyaan melalui formulir umpan balik di bawah ini. Untuk opsi konfigurasi lanjutan, buka dokumentasi Varnish Cache dan dokumentasi Hitch.

Berbagi itu Peduli…
Berbagi di FacebookBerbagi di TwitterBerbagi di LinkedinBerbagi di Reddit
Cent OS
  1. Cara Menginstal Cache Pernis di CentOS

  2. Cara Mengaktifkan Log Permintaan Lambat untuk MySQL

  3. Cara Instal Varnish Cache di CentOS 8

  1. Cara Menginstal Varnish Cache 4 di CentOS 7

  2. Cara Mengaktifkan Beberapa Situs HTTPS Untuk Satu IP Di Debian Etch Menggunakan Ekstensi TLS

  3. Cara mengaktifkan core dump untuk Aplikasi di CentOS/RHEL

  1. CentOS / RHEL 7 :Cara mengaktifkan telnet untuk sekelompok pengguna

  2. CentOS / RHEL :Cara Mengaktifkan SSL Untuk Apache

  3. Cara Mengaktifkan Verbose Logging untuk VSFTPD