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