Cara Mengaktifkan HTTPS untuk Cache Varnis menggunakan Hitch pada CentOS-RHEL 8

Cara Mengaktifkan HTTPS untuk Cache Varnis menggunakan Hitch pada CentOS-RHEL 8

Cache varnis tidak mempunyai sokongan asli untuk SSL/TLS dan protokol lain yang berkaitan dengan pelabuhan 443. Sekiranya anda menggunakan Cache varnis Untuk meningkatkan prestasi aplikasi web anda, anda perlu memasang dan mengkonfigurasi sekeping perisian lain yang dipanggil SSL/TLS proksi penamatan, untuk bekerja bersama Cache varnis bagi membolehkan Https.

The Hitch adalah proksi SSL/TLS SSL/TLS yang berasaskan SSL/TLS yang direka untuk berskala percuma Cache varnis, yang kini berfungsi di Linux, OpenBSD, FreeBSD, dan MacOSX. Ia menamatkan sambungan TLS/SSL dengan mendengar di port 443 (port lalai untuk Https sambungan) dan meneruskan lalu lintas yang tidak disulitkan ke Cache varnis, Walau bagaimanapun, ia juga harus berfungsi dengan backend lain.

Ia menyokong TLS1.2 dan TLS1.3 dan warisan TLS 1.0/1.1, menyokong ALPN (Rundingan Protokol Permohonan) dan Npn (Rundingan protokol seterusnya) untuk Http/2, Protokol proksi untuk memberi isyarat kepada klien IP/port ke backend, sambungan soket domain unix ke asal, Sni (Petunjuk nama pelayan), dengan dan tanpa sijil kad liar. Di samping itu, ia berfungsi dengan baik untuk pemasangan besar yang memerlukan sehingga 15,000 mendengar soket dan 500,000 sijil.

Sebagai kesinambungan dua artikel sebelumnya mengenai memasang Cache varnis untuk Nginx dan Apache Pelayan HTTP, panduan ini menunjukkan untuk membolehkan Https untuk Cache varnis menggunakan Hitch TLS Proxy pada Centos/RHEL 8.

Rajah logik persediaan kami

Panduan ini menganggap bahawa anda telah memasang Varnis untuk Nginx atau Apache pelayan web, jika tidak, lihat:

  • Cara Memasang Varnis Cache 6 untuk Pelayan Web Nginx di CentOS/RHEL 8
  • Cara Memasang Varnis Cache 6 untuk pelayan web Apache di CentOS/RHEL 8

Langkah 1: Pasang halangan pada Centos/RHEL 8

1. The Hitch pakej disediakan di Epel (Pakej Tambahan untuk Enterprise Linux) repositori. Untuk memasangnya, terlebih dahulu membolehkan Epel pada sistem anda dan kemudian pasang pakej selepas itu. Sekiranya anda tidak mempunyai OpenSSL pakej dipasang, pasangkannya juga.

# DNF Pasang Epel-Release # DNF Pasang Hitch OpenSSL 
Pasang Hitch pada CentOS 8

2. Apabila pemasangan pakej selesai, anda perlu mengkonfigurasi Cache varnis bekerja Hitch. Anda juga perlu mengkonfigurasi Hitch untuk menggunakan anda SSL/TLS sijil dan Varnis sebagai backend. Fail konfigurasi utama Hitch terletak di /etc/halangan/halangan.Conf, yang dijelaskan di bawah.

Langkah 2: Mengkonfigurasi cache varnis untuk halangan

3. Seterusnya, aktifkan Varnis untuk mendengar pelabuhan tambahan (8443 dalam kes kita) menggunakan Proksi sokongan protokol, untuk komunikasi dengan Hitch.

Jadi buka varnis sistemd fail perkhidmatan untuk mengedit.

# Systemctl Edit -FURNISH VARNISH 

Cari garis Execstart dan tambahkan tambahan -a bendera dengan nilai 127.0.0.1: 8443, proksi. Menggunakan nilai 127.0.0.1: 8443 bermaksud varnis hanya akan menerima sambungan dalaman (dari proses yang berjalan pada pelayan yang sama i.e hitch dalam kes ini) tetapi bukan sambungan luaran.

Execstart =/usr/sbin/varnishd -a: 80 -a 127.0.0.1: 8443, proksi -f/etc/varnis/lalai.VCL -S Malloc, 256m 
Tetapkan Port Dengar Varnis untuk Hitch

Simpan fail dan kemudian mulakan semula perkhidmatan varnis untuk menggunakan perubahan terkini.

# Systemctl mulakan semula varnis 

Langkah 3: Mendapatkan sijil SSL/TLS

4. Dalam bahagian ini, kami akan menerangkan cara membuat SSL/TLS Bundle Sijil untuk digunakan di bawah Hitch. Untuk panduan ini, kami akan menerangkan pelbagai pilihan cara menggunakan sijil ditandatangani sendiri, sijil komersial, atau satu dari Mari enkripsi.

Untuk membuat sijil yang ditandatangani sendiri (yang hanya perlu anda gunakan dalam persekitaran ujian tempatan), anda boleh 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 sekumpulan sijil dan kunci seperti berikut.

# Cat Tecmint.CRT TECMINT.KEY> TECMINT.PEM 

Catatan: Untuk penggunaan pengeluaran, anda boleh membeli sijil dari komersial Pihak Berkuasa Sijil (Ca) atau ambil sijil percuma, automatik, dan sepenuhnya diiktiraf dari Mari enkripsi. Kemudian buat bundle PEM.

Sekiranya anda membeli sijil dari iklan Ca, Anda perlu menggabungkan kunci peribadi, sijil, dan bundle CA seperti yang ditunjukkan.

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

Untuk Mari enkripsi, Sijil, kunci peribadi, dan rantaian penuh akan disimpan di bawah /etc/letsencrypt/live/contoh.com/, Oleh itu, buat bundle seperti yang ditunjukkan.

# kucing/etc/letsencrypt/live/contoh.com/fullchain.PEM/ETC/Letsencrypt/Live/Contoh.com/privkey.PEM>/etc/letsencrypt/live/contoh.com/contoh.com_bundle.PEM 

Langkah 4: Mengkonfigurasi dan memulakan halangan

5. Seterusnya, konfigurasikan Varnis sebagai backend untuk Hitch dan tentukan SSL/TLS fail sijil untuk digunakan untuk Https, di dalam Hitch fail konfigurasi utama, buka untuk mengedit.

# vi/etc/halangan/halangan.Conf 

The Frontend bahagian mentakrifkan alamat IP dan pelabuhan Hitch akan mendengar. Konfigurasi lalai adalah untuk mendengar semua IPv4 dan IPv6 antara muka yang dilampirkan pada pelayan dan berjalan di port 443 dan mengendalikan masuk Https permintaan, menyerahkannya ke Varnis.

Tukar lalai backend port proksi dari 6086 ke 8443 (Pelabuhan digunakan untuk mengemukakan permintaan ke Varnis) di dalam Hitch fail konfigurasi, menggunakan backend parameter. Juga, tentukan fail sijil menggunakan PEM-fail 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 proksi SSL/TLS untuk varnis

Simpan fail dan tutupnya.

6. Sekarang mulakan Hitch perkhidmatan dan membolehkannya bermula secara automatik di boot sistem. Perhatikan bahawa --sekarang Tukar apabila digunakan dengan Enable, memulakan perkhidmatan Systemd juga dan kemudian periksa status untuk melihat apakah ia sudah selesai dan berjalan seperti berikut.

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

7. Sebelum anda meneruskan untuk menguji jika laman web/aplikasi anda kini berjalan Https, anda perlu membenarkan Https port perkhidmatan 443 di firewall untuk membenarkan permintaan yang ditakdirkan untuk port tersebut di pelayan untuk melalui firewall.

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

Langkah 5: Menguji penamatan SSL/TLS dengan persediaan cache varnis

8. Kini sudah tiba masanya untuk menguji Varnis Cache-Hitch Persediaan. Buka penyemak imbas web dan gunakan domain atau IP pelayan anda untuk menavigasi Https.

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

Setelah halaman indeks aplikasi web anda dimuatkan, periksa Http tajuk untuk mengesahkan bahawa kandungan sedang disampaikan melalui Cache varnis.

Untuk melakukan itu, klik kanan di laman web yang dimuatkan, pilih Memeriksa Dari senarai pilihan untuk membuka alat pemaju. Kemudian klik pada Rangkaian tab, dan Tambah nilai Halaman, kemudian pilih permintaan untuk melihat tajuk HTTP, seperti yang diserlahkan dalam tangkapan skrin berikut.

Semak persediaan https pada cache varnis

Langkah 6: Mengalihkan http ke https dalam cache varnis

9. Untuk menjalankan laman web anda Https Hanya, anda perlu mengalihkan semua Http lalu lintas ke Https. Anda boleh melakukan ini dengan menambahkan konfigurasi berikut dalam fail konfigurasi hitch anda.

# vi/etc/halangan/halangan.Conf 

Pertama, tambahkan garis Import Std; hanya dibawah VLC 4.0;, Kemudian cari VLC_RECV Subroutine, yang merupakan subrutin VCL pertama yang dilaksanakan sebaik sahaja Cache varnis telah menghuraikan permintaan klien ke dalam struktur data asasnya. Di sinilah kita dapat mengubah suai pengepala permintaan dan melaksanakan synth untuk mengalihkan permintaan klien.

Ubah suai untuk kelihatan seperti ini.

sub vcl_recv if (std.port (pelayan.ip) != 443) set req.http.Lokasi = "https: //" + req.http.Host + Req.URL; kembali (synth (301));  

Perhatikan bahawa Proksi Protokol membolehkan Varnis untuk melihat Hitch's pelabuhan mendengar 443 daripada pelayan.ip pembolehubah. Jadi garis std.port (pelayan.ip) mengembalikan nombor port di mana sambungan pelanggan diterima.

Sekiranya pelabuhan tidak 443 untuk Https (Seperti yang diperiksa oleh (Std.port (pelayan.ip) != 443)), subrutin akan menetapkan header lokasi HTTP permintaan (Tetapkan Req.http.Lokasi) kepada permintaan yang selamat ("https: //" + req.http.Tuan rumah + req.url) hanya meminta penyemak imbas web untuk memuatkan a Https versi laman web (i.pengalihan semula url).

The Lokasi tajuk akan dihantar ke VCL_SYNTH Subroutine (yang dipanggil menggunakan kembali (synth (301))) dengan kod status HTTP 301 (Berpindah secara tetap).

10. Seterusnya, tambahkan yang berikut VCL_SYNTH SUBROUTINE (salah satu daripada banyak kegunaannya adalah pengalihan pengguna), untuk memproses sintesis di atas.

sub vcl_synth if (resp.status == 301) set resp.http.Lokasi = Req.http.lokasi; Tetapkan resp.status = 301; kembali (menyampaikan);  

Ia memeriksa jika status tindak balas adalah 301, Pengepala lokasi HTTP dalam respons ditetapkan ke pengepala lokasi HTTP dalam permintaan yang sebenarnya adalah pengalihan ke HTTPS dan melaksanakan tindakan penyampaian.

Tindakan penyampaian membina respons dengan respons dari backend, menyimpan respons dalam cache, dan menghantarnya kepada pelanggan.

Konfigurasikan halangan untuk mengalihkan http ke https

Simpan fail dan tutupnya.

11. Sekali lagi, gunakan perubahan baru dalam konfigurasi varnis dengan memulakan semula perkhidmatan. Kemudian gunakan alat baris perintah curl untuk mengesahkan pengalihan semula dari Http ke Https.

# Systemctl Restart Varnish # Curl -I http: // eaxmple.com/ 
Semak HTTP ke HTTPS Redirect

Dari penyemak imbas, respons juga sama seperti yang ditunjukkan dalam tangkapan skrin berikut.

Semak http ke pengalihan https dalam penyemak imbas

Kami berharap segala -galanya telah berfungsi dengan baik sehingga ke tahap ini. Jika tidak, jatuhkan komen atau soalan melalui borang maklum balas di bawah. Untuk sebarang pilihan konfigurasi lanjutan, pergi ke dokumentasi cache varnis dan dokumentasi halangan.