Cara mengaktifkan https untuk cache pernis menggunakan halangan pada centos-rhel 8

Cara mengaktifkan https untuk cache pernis menggunakan halangan pada centos-rhel 8

Cache 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, Anda perlu menginstal dan mengonfigurasi perangkat lunak lain yang disebut SSL/TLS proxy penghentian, untuk bekerja bersama Cache pernis untuk mengaktifkan Https.

Itu Halangan adalah open source gratis, berbasis libev, dan proxy SSL/TLS scalable yang dirancang untuk Cache pernis, Yang saat ini berfungsi di Linux, OpenBSD, FreeBSD, dan Macosx. Itu mengakhiri koneksi TLS/SSL dengan mendengarkan di port 443 (port default untuk Https koneksi) dan meneruskan lalu lintas yang tidak terenkripsi ke Cache pernis, Namun, itu juga harus bekerja dengan backend lainnya.

Itu mendukung Tls1.2 Dan Tls1.3 dan warisan TLS 1.0/1.1, dukungan Alpn (Negosiasi Protokol Lapisan Aplikasi) Dan NPN (Negosiasi Protokol Berikutnya) untuk Http/2, protokol proxy untuk menandakan 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 pemasangan Cache pernis untuk Nginx Dan Apache Server http, panduan ini ditampilkan untuk mengaktifkan Https untuk Cache pernis menggunakan Hitch TLS Proxy pada Centos/rhel 8.

Diagram logis dari pengaturan kami

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

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

Langkah 1: Pasang Hitch pada Centos/RHEL 8

1. Itu Halangan Paket disediakan di Epel (Paket tambahan untuk Enterprise Linux) Repositori. Untuk menginstalnya, pertama -tama aktifkan Epel di sistem Anda dan kemudian instal paket sesudahnya. Kalau kamu tidak punya Openssl Paket diinstal, instal juga.

# DNF Instal Epel-Release # DNF Instal Hitch OpenSSL 
Instal Hitch di Centos 8

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

Langkah 2: Mengkonfigurasi Cache pernis untuk halangan

3. Selanjutnya, aktifkan Pernis untuk mendengarkan port tambahan (8443 dalam kasus kami) menggunakan Proxy Dukungan protokol, untuk komunikasi dengan Halangan.

Jadi buka pernis Systemd file layanan untuk pengeditan.

# Systemctl Edit -Varnish 

Cari garis EXECSTART dan tambahkan tambahan -A Bendera dengan nilainya 127.0.0.1: 8443, proxy. Menggunakan nilai 127.0.0.1: 8443 berarti pernis hanya akan menerima koneksi internal (dari proses yang berjalan di server yang sama i.e 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 
Atur Port Listen Varnish untuk halangan

Simpan file dan kemudian restart layanan pernis 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 yang akan digunakan di bawah Halangan. Untuk panduan ini, kami akan menjelaskan berbagai opsi tentang cara menggunakan sertifikat yang ditandatangani sendiri, sertifikat komersial, atau satu dari Mari Enkripsi.

Untuk membuat sertifikat yang ditandatangani sendiri (yang hanya harus 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.KUNCI -out tecmint.lan.crt 

Kemudian buat sekumpulan sertifikat dan kunci sebagai berikut.

# Cat tecmint.crt tecmint.Kunci> Tecmint.PEM 

Catatan: Untuk penggunaan produksi, Anda dapat membeli sertifikat dari komersial Otoritas Sertifikat (Ca) atau ambil sertifikat gratis, otomatis, dan diakui sepenuhnya Mari Enkripsi. Kemudian buat bundel PEM.

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

# Contoh kucing.com.contoh utama.com.Contoh CRT.com-ca-bundle.crt>/etc/ssl/contoh.com.PEM 

Untuk Ayo mengenkripsi, Sertifikat, kunci pribadi, dan rantai penuh akan disimpan di bawah /etc/letsencrypt/live/example.com/, Jadi buat bundel seperti yang ditunjukkan.

# kucing/etc/letsencrypt/live/example.com/fullchain.PEM/etc/letsencrypt/live/example.com/privkey.PEM>/etc/letsencrypt/live/example.com/contoh.com_bundle.PEM 

Langkah 4: Mengkonfigurasi dan Memulai halangan

5. Selanjutnya, konfigurasikan Pernis Sebagai backend untuk Halangan dan tentukan SSL/TLS file sertifikat untuk digunakan Https, dalam Halangan file konfigurasi utama, buka untuk pengeditan.

# vi/etc/halangan/halangan.conf 

Itu paling depan Bagian mendefinisikan alamat IP dan pelabuhan Halangan akan mendengarkan. Konfigurasi default adalah mendengarkan semua IPv4 Dan IPv6 antarmuka terpasang di server dan berjalan di port 443 dan menangani masuk Https permintaan, menyerahkannya ke Pernis.

Ubah default backend port proxy dari 6086 ke 8443 (Port yang digunakan untuk meneruskan permintaan ke Pernis) dalam 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 " 
Konfigurasikan halangan sebagai proxy ssl/tls untuk pernis

Simpan file dan tutup.

6. Sekarang mulai halangan layanan dan aktifkan untuk secara otomatis mulai dari boot sistem. Perhatikan bahwa --Sekarang Beralih saat digunakan dengan aktifkan, mulai layanan SystemD juga dan kemudian periksa status untuk melihat apakah itu naik dan berjalan sebagai berikut.

# Systemctl Enable ---now Hitch # Systemctl Status Hitch 
Verifikasi status halangan

7. Sebelum Anda melanjutkan untuk menguji apakah situs web/aplikasi Anda sekarang sedang berjalan Https, Anda perlu mengizinkan Https Port layanan 443 di firewall untuk memungkinkan permintaan yang ditakdirkan untuk port itu di server untuk melewati firewall.

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

Langkah 5: Menguji Pengakhiran SSL/TLS dengan Pengaturan Varnish Cache-Hitch

8. Sekarang saatnya menguji Varnish cache-hitch mempersiapkan. Buka browser web dan gunakan IP domain atau server Anda untuk menavigasi Https.

https: // www.contoh.com atau https: // server_ip/ 

Setelah halaman indeks aplikasi web Anda dimuat, periksa Http header untuk mengkonfirmasi bahwa konten sedang dilayani melalui Cache pernis.

Untuk melakukan itu, klik kanan pada halaman web yang dimuat, pilih Memeriksa Dari daftar opsi untuk membuka alat pengembang. Kemudian klik pada Jaringan tab, dan Muat ulang Halaman, lalu pilih permintaan untuk melihat header HTTP, seperti yang disorot dalam tangkapan layar berikut.

Periksa Pengaturan HTTPS di Varnish Cache

Langkah 6: Mengalihkan HTTP ke HTTPS di Varnish Cache

9. Untuk menjalankan situs web Anda Https Hanya, Anda perlu mengarahkan semua Http lalu lintas ke Https. Anda dapat melakukan ini dengan menambahkan konfigurasi berikut di file konfigurasi halangan Anda.

# vi/etc/halangan/halangan.conf 

Pertama, tambahkan garis impor std; dibawah VLC 4.0;, Kemudian cari VLC_RECV subrutin, yang merupakan subrutin vcl pertama yang dieksekusi segera setelahnya Cache pernis telah menguraikan permintaan klien ke dalam struktur data dasarnya. Di sinilah kami dapat memodifikasi header permintaan dan menjalankan synth untuk mengarahkan kembali permintaan klien.

Memodifikasinya agar terlihat seperti ini.

sub vcl_recv if (std.port (server.aku p) != 443) Set Req.http.Lokasi = "https: //" + req.http.host + req.url; return (synth (301));  

Perhatikan bahwa Proxy Protokol memungkinkan Pernis untuk melihat Halangan port mendengarkan 443 dari server.aku p variabel. Jadi garisnya std.port (server.aku p) Mengembalikan nomor port tempat koneksi klien diterima.

Jika port tidak 443 untuk Https (Seperti yang diperiksa oleh (Std.port (server.aku p) != 443)), subrutin akan mengatur header lokasi http permintaan (atur req.http.Lokasi) ke permintaan yang aman (“https: //" + req.http.tuan rumah + req.url) Cukup meminta browser web untuk memuat a Https Versi halaman web (i.pengalihan url).

Itu Lokasi header akan dikirim ke vcl_synth subrutin (yang disebut menggunakan return (synth (301))) dengan kode status http 301 (Bergerak secara permanen).

10. Selanjutnya, tambahkan yang berikut ini VCL_Synth Subroutine (Salah satu dari banyak kasus penggunaannya adalah mengarahkan kembali pengguna), untuk memproses synth di atas.

sub vcl_synth if (resp.status == 301) set resp.http.Lokasi = Req.http.lokasi; Setel resp.status = 301; return (kirim);  

Itu memeriksa apakah status responsnya 301, Header lokasi HTTP dalam respons diatur ke header lokasi HTTP dalam permintaan yang sebenarnya merupakan pengalihan ke HTTPS dan menjalankan tindakan pengiriman.

Tindakan pengiriman membangun respons dengan respons dari backend, menyimpan respons di cache, dan mengirimkannya ke klien.

Konfigurasikan halangan untuk mengarahkan ulang http ke https

Simpan file dan tutup.

11. Sekali lagi, terapkan perubahan baru dalam konfigurasi pernis dengan memulai kembali layanan. Kemudian gunakan alat baris perintah curl untuk mengonfirmasi pengalihan dari Http ke Https.

# Systemctl Restart Varnish # Curl -i http: // eacmple.com/ 
Periksa http ke https redirect

Dari browser, responsnya juga sama seperti yang ditunjukkan pada tangkapan layar berikut.

Periksa http ke https pengalihan di browser

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