GNU/Linux >> Belajar Linux >  >> Rocky Linux

Cara Mengatur Pengakhiran SSL Varnish dengan server Web Nginx di Rocky Linux 8

Perangkat lunak cache pernis tidak mendukung SSL/TLS secara default. Anda memerlukan perangkat lunak tambahan untuk mengaktifkan dukungan SSL/TLS di Varnish.

Penghentian SSL adalah metode untuk mengaktifkan SSL/TLS pada Varnish. Anda dapat menggunakan Hitch, Nginx, atau Apache untuk mengaktifkan penghentian SSL untuk akselerator HTTP Varnish.

Perangkat lunak penghentian SSL akan berjalan di HTTPS port '443 ' dan menangani semua permintaan HTTPS dari klien. Setelah itu, semua permintaan akan diteruskan ke perangkat lunak cache varnish, kemudian diteruskan ke server backend asal.

Prasyarat

Dalam artikel ini, Anda akan mempelajari cara mengatur Pengakhiran SSL Varnish dengan server web Nginx.

Sebelum Anda mulai, pastikan Anda telah memenuhi persyaratan berikut:

  • Server Linux dengan Varnish terinstal di dalamnya.
  • Hak istimewa root
  • Nama domain

Untuk contoh ini, kami menggunakan server Rocky Linux dengan Varnish terinstal di atasnya. Dan kita akan menggunakan nama domain 'example.io '.

Sekarang mari kita mulai.

Menginstal Server Web Nginx

Jika Anda menggunakan Nginx sebagai backend Varnish, lewati langkah pertama ini.

Pada langkah pertama ini, Anda akan menginstal Nginx di sistem Linux.

1. Untuk distribusi berbasis Debian/Ubuntu, jalankan perintah apt di bawah ini untuk menginstal server web Nginx.

sudo apt install nginx -y

2. Untuk sistem operasi CentOS/RockyLinux/AlmaLinux, jalankan perintah DNF di bawah ini untuk menginstal server web Nginx.

sudo dnf install nginx -y

3. Setelah instalasi Nginx selesai, mulai dan aktifkan server web Nginx menggunakan perintah berikut.

sudo systemctl enable --now nginx

Jika Anda mendapatkan kesalahan, biarkan saja. Anda akan mengonfigurasi Nginx di langkah berikutnya.

Buat SSL dengan Certbot

Pada langkah ini, Anda akan menginstal alat cerbot dan membuat sertifikat SSL dari Letsencrypt untuk domain 'example.io '.

1. Pertama, tambahkan port HTTP dan HTTPS ke firewall sistem.

Untuk sistem Debian/Ubuntu, jalankan perintah ufw di bawah ini untuk membuka port HTTP dan HTTPS.

sudo ufw allow http
sudo ufw allow https
sudo ufw reload

Untuk sistem CentOS/RockyLinux/AlmaLinux, jalankan perintah firewall-cmd di bawah ini.

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload

2. Selanjutnya, instal alat certbot menggunakan perintah berikut.

Instal alat certbot pada sistem Debian/Ubuntu menggunakan perintah apt di bawah ini.

sudo apt install certbot -y

Instal alat certbot pada sistem CentOS/RockyLinux/AlmaLinux menggunakan perintah DNF di bawah ini.

sudo dnf install certbot -y

3. Sebelum Anda membuat SSL Letsencrypt, hentikan layanan Varnish yang berjalan pada port HTTP default.

sudo systemctl stop varnish
sudo systemctl stop nginx

4. Sekarang jalankan perintah certbot di bawah ini untuk menghasilkan SSL Letsencrypt. Dan pastikan untuk mengubah nama domain dan alamat email.

sudo certbot certonly --agree-tos --email [email protected] --standalone --preferred-challenges http -d example.io

Setelah proses certbot selesai, sertifikat Anda akan tersedia di direktori '/etc/letsencrypt/live/DOMAIN.COM/ '.

Sertifikat 'fullchain.pem ' adalah kunci publik SSL Anda, dan 'privkey.pem ' adalah kunci pribadi SSL Anda.

Setel Port Nginx Default

Lewati langkah ini jika Anda menggunakan server web Nginx sebagai backend untuk akselerator HTTP Varnish Anda.

Jika Anda menggunakan server web backend lain, Anda harus mengonfigurasi port default untuk Nginx.

1. Edit konfigurasi nginx default menggunakan editor nano.

sudo nano /etc/nginx/nginx.conf

Pada 'server { ... } default default ', ubah opsi 'dengarkan ' ke port '8081 ' seperti di bawah ini.

....

    server {
        listen       8081 default_server;
        listen       [::]:8081 default_server;

        ...trim...
    }

....

Simpan konfigurasi dan keluar.

2. Sekarang restart layanan Nginx untuk menerapkan konfigurasi baru.

sudo systemctl restart nginx

Layanan Nginx default sekarang berjalan pada port '8081 '.

Mengatur Penghentian SSL dengan server Web Nginx

Untuk menyiapkan penghentian SSL dengan Nginx, Anda perlu membuat konfigurasi blok host/server virtual baru yang akan berjalan pada port HTTPS '443'.

Host virtual ini menangani semua permintaan HTTPS dari klien dan meneruskan semua permintaan ke akselerator HTTP Varnish.

1. Buat konfigurasi blok server Nginx baru menggunakan perintah berikut.

Jika Anda menggunakan sistem berbasis Debian/Ubuntu, buat konfigurasi baru '/etc/nginx/sites-available/example.io '.

sudo nano /etc/nginx/sites-available/example.io

Untuk sistem CentOS/RockyLinux/AlmaLinux, buat konfigurasi baru '/etc/nginx/conf.d/example.conf' .

sudo nano /etc/nginx/conf.d/example.conf

Salin dan tempel konfigurasi berikut. Dan pastikan untuk mengubah nama domain dan jalur sertifikat SSL.

server {

    listen 443 ssl http2;
    server_name example.io;
    ssl_certificate           /etc/letsencrypt/live/exmaple.io/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/example.io/privkey.pem;

    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log            /var/log/nginx/example.io_access.log;
    error_log             /var/log/nginx/example.io_error.log;

        location / {
            proxy_pass http://127.0.0.1:80;
            proxy_set_header X-Real-IP  $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header X-Forwarded-Port 443;
            proxy_set_header Host $host;
        }

  }

Simpan konfigurasi dan keluar.

2. Selanjutnya, Untuk sistem Debian/Ubuntu, aktifkan konfigurasi blok server menggunakan perintah berikut.

sudo ln -s /etc/nginx/sites-available/example.io /etc/nginx/sites-enabled/

3. Sekarang jalankan perintah berikut untuk memverifikasi konfigurasi Nginx, lalu restart layanan Nginx untuk menerapkan konfigurasi baru.

sudo nginx -t
sudo systemctl restart nginx

4. Sekarang verifikasi layanan Nginx dan HTTPS port '443 ' menggunakan perintah berikut.

Verifikasi status layanan Nginx menggunakan perintah systemctl di bawah ini.

sudo systemctl status nginx

Pastikan layanan Nginx aktif dan berjalan.

Verifikasi port HTTPS '443 ' di sistem Anda menggunakan ss perintah di bawah ini.

ss -antpl | grep 443

Pastikan port HTTPS '443 ' pada status 'DENGARKAN '.

LISTEN 0      128          0.0.0.0:443        0.0.0.0:*    users:(("nginx",pid=4787,fd=8),("nginx",pid=4786,fd=8),("nginx",pid=4785,fd=8))

Sekarang Anda telah menyelesaikan konfigurasi dasar penghentian SSL dengan server web Nginx.

HTTP otomatis ke HTTPS dengan Varnish

Pada langkah ini, Anda akan mengatur Varnish untuk secara otomatis mengarahkan HTTP ke protokol HTTPS. Ini dapat dicapai dengan membuat aturan Varnish baru pada konfigurasi 'default.vcl' .

1. Edit konfigurasi varnish '/etc/varnish/default.vcl' menggunakan editor nano.

nano /etc/varnish/default.vcl

Salin dan tempel konfigurasi berikut di dalam opsi 'sub vcl_recv { ... } '. Dan pastikan untuk mengganti nama domain dengan domain Anda.

sub vcl_recv {

    ...trim...

    if (client.ip != "127.0.0.1" && req.http.host ~ "example.io") {
       set req.http.x-redir = "https://example.io" + req.url;
       return(synth(850, ""));
    }

    ...trim...
{

Selanjutnya, tambahkan konfigurasi berikut ke bagian bawah baris. Ini akan menentukan metode pengalihan ke HTTP '301'.

sub vcl_synth {
    if (resp.status == 850) {
       set resp.http.Location = req.http.x-redir;
       set resp.status = 301;
       return (deliver);
    }
}

Simpan konfigurasi pernis dan keluar.

2. Selanjutnya, restart layanan Varnish untuk menerapkan konfigurasi baru menggunakan perintah berikut.

sudo systemctl restart varnish

Dan Anda telah menyelesaikan pengalihan HTTP dan HTTPS otomatis menggunakan aturan Varnish.

Verifikasi Penghentian SSL Varnish

Untuk menguji penghentian SSL Varnish, Anda dapat menggunakan browser web atau menggunakan perintah curl.

1. Buka browser web Anda dan ketik nama domain Anda di bilah alamat. Untuk contoh ini, kami menggunakan browser web Firefox.

http://example.io

Anda akan secara otomatis dialihkan ke protokol HTTPS.

Klik kanan pada halaman web dan klik menu 'Periksa '.

Pindah ke tab 'Jaringan ' dan klik 'Muat Ulang '.

Klik permintaan URL root dan Anda akan melihat output serupa seperti di bawah ini.

Permintaan ke http://example.io secara otomatis dialihkan ke protokol HTTPS https://example.io dengan kode status '301 '.

Server Varnish menangani semua permintaan klien.

2. Untuk memverifikasi penghentian SSL pernis dengan curl, gunakan perintah berikut.

curl -I http://example.io

Anda akan melihat detail header HTTP seperti di bawah ini.

Permintaan dialihkan ke protokol HTTPS 'https://example.io' dengan kode status HTTP '301 '. Server pernis menangani semua permintaan dari klien.

Kesimpulan

Selamat! Anda telah mempelajari konfigurasi Pemutusan SSL Varnish dengan server web Nginx.

Selain itu, Anda telah mempelajari perintah certbot dasar untuk membuat SSL Letsencrypt gratis dan aturan pernis dasar untuk pengalihan otomatis dari HTTP ke HTTPS.


Rocky Linux
  1. Cara Menginstal Varnish 7 untuk Nginx di Rocky Linux 8

  2. Cara Menginstal Server Web Nginx di Linux

  3. Cara Menginstal Server FTP di Rocky Linux 8 Dengan VSFTPD

  1. Cara Menginstal Server Web Nginx di Ubuntu 18.04

  2. Cara Mengatur NGINX yang Sangat Tersedia dengan KeepAlived di Linux

  3. Cara Memasang Let's Encrypt SSL untuk NGINX di Rocky Linux 8

  1. Cara Install NEOS CMS dengan Nginx dan Lets Encrypt SSL di Rocky Linux 8

  2. Cara Instal Apache Tomcat 10 dengan Nginx di Rocky Linux 8

  3. Cara Menginstal Joomla dengan Nginx di Rocky Linux