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

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

Keamanan adalah salah satu perhatian utama bagi pemilik situs web, terutama jika Anda menjalankan toko eCommerce atau situs yang menerima informasi rahasia pengguna seperti nama pengguna dan kata sandi. Protokol HTTP biasa tidak aman karena data dikirim dalam teks biasa dan peretas dapat menguping komunikasi yang dikirim ke dan dari server web.

Untuk mengatasi risiko ini, disarankan untuk mengamankan server web menggunakan sertifikat TLS/SSL. Ini adalah sertifikat digital kriptografi yang mengenkripsi server web Anda dan memastikan data yang dipertukarkan dengan server web dienkripsi.

Let's Encrypt SSL certificate adalah sertifikat digital yang disediakan oleh Let's Encrypt CA ( Certificate Authority) untuk mengamankan web server. Ini adalah sertifikat TLS/SSL gratis yang hanya berlaku selama 90 hari, di mana pembaruan diperlukan sebelum kedaluwarsa. Ini bermanfaat bagi pemula atau individu yang tidak mampu membeli sertifikat SSL premium untuk blog atau situs web mereka.

Dalam panduan ini, kami akan menunjukkan bagaimana Anda dapat menginstal sertifikat Let's Encrypt SSL/TLS untuk NGINX di Rocky Linux 8

Yang Anda butuhkan

Pertama, pastikan Anda memiliki instance server Rocky Linux 8 di cloud atau di tempat dan sudah dikonfigurasi dengan pengguna sudo.

Selanjutnya, pastikan Anda memiliki Fully Qualified Domain Name (FQDN ) yang menunjuk ke IP publik server Anda. Untuk mencapai ini, pergilah ke pencatat domain Anda, dan dalam pengaturan DNS, konfigurasikan catatan A untuk mengarahkan nama domain ke IP Publik server. Di bawah ini adalah cuplikan dari catatan A saya.

Untuk panduan ini, kami menggunakan nama domain linuxtechgeek.info yang menunjuk ke alamat IP server 34.134.239.201.

Dengan itu, mari kita mulai!

Langkah 1)  Instal Server Web Nginx

Kita mulai dengan instalasi server web Nginx di Rocky 8. Tapi pertama-tama, mari kita perbarui paket sistem dan perbarui repositori.

$ sudo dnf update

Pembaruan dapat memakan waktu cukup lama, jadi bersabarlah hingga selesai.

Setelah pemutakhiran selesai, reboot sistem sekali dan kemudian instal server web nginx sebagai berikut:

$ sudo dnf install nginx

Secara default, nginx tidak dimulai secara otomatis. Jadi, bekerja lebih keras dan mulai layanan nginx.

$ sudo systemctl start nginx

Selanjutnya, aktifkan server web untuk memulai saat boot atau saat reboot.

$ sudo systemctl enable nginx

Server web sekarang harus berjalan seperti yang diharapkan dan mendengarkan pada port 80. Anda dapat mengonfirmasi ini dengan menjalankan perintah

$ sudo systemctl status nginx

Anda juga dapat memverifikasi ini dari browser web. Tapi pertama-tama, izinkan lalu lintas HTTP (baik HTTP &HTTPS) di firewall dengan menjalankan perintah yang ditunjukkan

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

Kemudian muat ulang firewall untuk melakukan perubahan.

$ sudo firewall-cmd --reload

Kemudian telusuri alamat IP atau nama domain server Anda

http://nama_domain

Langkah 2)  Buat root Dokumen untuk domain

Kami selesai menginstal server web. Langkah selanjutnya adalah membuat direktori yang akan menampung file-file domain. Kami akan membuat direktori domain di jalur linuxtechgeek.info seperti yang ditunjukkan menggunakan perintah mkdir

$ sudo mkdir -p /var/www/linuxtechgeek.info/html

Akar dokumen domain adalah tempat Anda akan menemukan file situs web termasuk HTML, CSS, JavaScript, dan gambar. Untuk tujuan demonstrasi, kita akan membuat file index.html sederhana.

$ sudo vi /var/www/linuxtechgeek.info/html/index.html

Selanjutnya, tempel kode HTML contoh berikut dan simpan perubahannya.

<!DOCTYPE html>
<html>
    <head>
        <title>Welcome to linuxtechgeek.info</title>
    </head>
    <body>
  <h1>Hey Guys! Our Nginx server block is working.</h1>
    </body>
</html>

Selanjutnya, gunakan perintah chown untuk mengatur kepemilikan direktori domain sebagai berikut untuk menghindari masalah perizinan.

$ sudo chown -R nginx /var/www/linuxtechgeek.info/

Selanjutnya, atur izin sedemikian rupa sehingga pengguna grup dan global telah membaca dan menjalankan hak atas file domain.

$ sudo chmod -R 755 /var/www/linuxtechgeek.info/

Kami selesai mengonfigurasi root dokumen untuk domain dan mengatur kepemilikan dan izin yang tepat. Mari kita lanjutkan dan konfigurasikan file blok Server.

Langkah 3)  Buat Blok Server Nginx

Blok server Nginx setara dengan virtualhost apache. Blok server adalah tempat Anda menentukan pengaturan situs dan memberi tahu server web nginx tempat untuk menemukan file domain.

File konfigurasi blok server dibuat di direktori /etc/nginx/conf.d. Kami akan membuat milik kami di direktori yang sama sebagai berikut.

$ sudo vi /etc/nginx/conf.d/linuxtechgeek.info.conf

Salin dan tempel baris berikut. Pastikan untuk mengganti nama domain linuxtechgeek.info dengan domain Anda sendiri.

server {
    listen 80;
    server_name linuxtechgeek.info www.linuxtechgeek.info;
    root /var/www/linuxtechgeek.info/html;
    index index.php index.html index.htm;
    access_log /var/log/nginx/linuxtechgeek.info.access.log;
    error_log /var/log/nginx/linuxtechgeek.info.error.log;
}

Simpan perubahan dan keluar dari file blok server.

Kemudian konfirmasikan bahwa semua konfigurasi Nginx baik-baik saja. Jika semuanya baik-baik saja, Anda akan mendapatkan output yang ditampilkan.

$ sudo nginx -t

Agar Nginx mengetahui semua perubahan termasuk root dokumen domain dan file blok server, mulai ulang server web.

$ sudo systemctl restart nginx

Kemudian konfirmasikan status menjalankan Nginx.

$ sudo systemctl status nginx

Selanjutnya, setel SELinux ke mode permissive menggunakan perintah:

$ sudo setenforce permissive

Untuk mengonfirmasi bahwa itu disetel ke mode permisif, jalankan perintah:

$ sudo getenforce

Jalankan perintah sed di bawah ini untuk menyetel mode selinux secara permanen sebagai permisif.

$ sudo sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/sysconfig/selinux

Untuk mengonfirmasi bahwa file blok server telah dikonfigurasi dengan benar, sekali lagi, jelajahi nama domain Anda.

http://nama_domain

Anda harus mendapatkan konfirmasi positif seperti yang ditunjukkan di bawah ini.

Langkah 4)  Instal Certbot

Satu-satunya langkah yang tersisa adalah menginstal Let's Encrypt dan mengamankan server web Nginx. Namun, untuk mencapai ini, kita perlu menginstal certbot. Ditulis dengan Python dan dikembangkan oleh Electronic Frontier Foundation, Certbot adalah klien berfitur lengkap untuk Let's Encrypt CA. Ini dijalankan di server web dan memungkinkan Anda untuk secara otomatis menyiapkan sertifikat SSL untuk server web Anda dalam satu perintah.

Pertama, instal repositori EPEL yang menyediakan paket tambahan dan berkualitas tinggi untuk distro berbasis RHEL.

$ sudo dnf install -y epel-release

Setelah terinstal, instal modul certbot dan certbot untuk Nginx.

$ sudo dnf install certbot python3-certbot-nginx

Ini menginstal certbot, modul certbot untuk host Nginx dari paket dan dependensi lain.

Langkah 4)  Instal Let's Encrypt SSL/TLS certificate

Terakhir, jalankan klien certbot untuk menginstal sertifikat SSL

$ sudo certbot --nginx

Ini membawa Anda melalui serangkaian petunjuk. Pertama, berikan alamat email yang akan digunakan oleh EFF untuk mengirimkan pembaruan dan pembaruan keamanan kepada Anda. Kemudian terima Persyaratan layanan dengan menekan 'Y'. Jika diinginkan, Anda dapat menekan 'Y' untuk mengizinkan EFF mengirimi Anda pembaruan rutin mengenai upaya mereka dalam mengamankan web, berita, dan kampanye. Terakhir, pilih nama domain yang akan dienkripsi. Dalam kasus kami, kami menekan tombol 'ENTER' untuk memilih semua nama domain.

Certbot akan mengambil sertifikat SSL/TLS dan menyebarkannya untuk nama domain yang ditentukan. Ini mengaktifkan protokol HTTPS untuk domain Anda, yang pada dasarnya mengenkripsi lalu lintas yang dipertukarkan dengan server web.

Untuk mengonfirmasi bahwa HTTPS telah diaktifkan, kembali ke browser Anda dan muat ulang. Kali ini, Anda akan melihat ikon gembok di bilah URL – indikasi bahwa situs tersebut dienkripsi.

Klik ikon tersebut lalu pilih ‘Sertifikat’.

Ini menampilkan detail sertifikat seperti yang disediakan

Selanjutnya, Anda dapat menguji status server web Anda di SSL Labs yang merupakan situs yang melakukan analisis mendalam terhadap server web melalui internet. Anda harus mendapatkan peringkat A seperti yang ditunjukkan.

Langkah 5) Mengelola pembaruan sertifikat SSL

Sertifikat Let's Encrypt berlaku selama 90 hari, namun Let's Encrypt merekomendasikan agar Anda memperbarui sertifikat setiap 60 hari. Notifikasi email akan dikirimkan kepada Anda dalam 20 hari terakhir hingga kedaluwarsa dengan frekuensi yang meningkat selama 10 hari terakhir.

Anda dapat memperbarui sertifikat secara manual sebagai berikut.

$ sudo certbot renew

Untungnya, Anda dapat mengotomatiskan pembaruan, dengan menambahkan tugas cron baru. Jadi, buka file crontab.

$ crontab -e

Dan tambahkan baris yang ditampilkan. Simpan perubahan dan keluar.

0 0 * * * /usr/bin/certbot renew > /dev/null 2>&1

Itu saja. Terima kasih telah datang sejauh ini. Kami telah menunjukkan bagaimana Anda dapat menginstal sertifikat SSL Let's Encrypt untuk Nginx di Rocky Linux 8.

Baca Juga :Cara Menyetel NGINX yang Sangat Tersedia dengan KeepAlived di Linux


Rocky Linux
  1. Cara Menginstal MariaDB 10.6 di Rocky Linux 8

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

  3. Cara Menginstal MariaDB di Rocky Linux 8

  1. Cara Menginstal Docker di Rocky Linux 8

  2. Cara Menginstal Cockpit di Rocky Linux 8

  3. Cara Menginstal GitLab di Rocky Linux 8

  1. Cara Memasang Let's Encrypt SSL di Nginx di Debian 11

  2. Cara Instal FreeIPA di Rocky Linux 8

  3. Cara Menginstal Podman di Rocky Linux 8