Rabu, 22 May 2024

Cara Mengamankan Apache dengan Let's Encrypt di Ubuntu

Let's Encrypt adalah Otoritas Sertifikat (CA) yang menyediakan sertifikat TLS/SSL gratis yang bisa di gunakan di server kamu.

Server
PHP

Pendahuluan

Let's Encrypt adalah Otoritas Sertifikat (CA) yang menyediakan sertifikat TLS/SSL gratis, memungkinkan enkripsi HTTPS pada server web. Prosesnya disederhanakan dengan menggunakan klien perangkat lunak, Certbot, yang mengotomatisasi sebagian besar langkah yang diperlukan. Panduan ini akan membantu Kamu mendapatkan dan menginstal sertifikat SSL gratis untuk Apache di Ubuntu serta memastikan sertifikat tersebut diperbarui secara otomatis.

Prasyarat

Sebelum memulai, pastikan Kamu memiliki:

  1. Server Ubuntu dengan pengguna non-root yang memiliki hak sudo.
  2. Nama domain terdaftar sepenuhnya (contoh: your_domain).
  3. Catatan DNS yang mengarah ke IP publik server Kamu.
  4. Apache terinstal dengan file virtual host untuk domain Kamu (contoh: /etc/apache2/sites-available/your_domain.conf).

Langkah 1 — Menginstal Certbot

Pertama, perbarui indeks paket lokal:

Terminal
sudo apt update

Kemudian, instal Certbot dan plugin Certbot untuk Apache:

Terminal
sudo apt install certbot python3-certbot-apache

Certbot sekarang telah terinstal di server Kamu. Selanjutnya, periksa konfigurasi virtual host Apache.

Langkah 2 — Memeriksa Konfigurasi Virtual Host Apache

Certbot perlu menemukan virtual host yang benar dalam file konfigurasi Apache Kamu. Buka file virtual host untuk domain Kamu:

Terminal
sudo nano /etc/apache2/sites-available/your_domain.conf

Pastikan baris ServerName dan ServerAlias sudah sesuai:

ServerName your_domain
ServerAlias www.your_domain

Setelah memastikan, tutup editor dan jalankan perintah berikut untuk memeriksa konfigurasi Apache:

sudo apache2ctl configtest

Jika hasilnya Syntax OK, lanjutkan dengan memuat ulang Apache:

Terminal
sudo systemctl reload apache2

Langkah 3 — Mengizinkan HTTPS Melalui Firewall

Jika firewall UFW diaktifkan, izinkan lalu lintas HTTPS. Verifikasi status firewall Kamu:

Terminal
sudo ufw status

Jika hanya HTTP yang diizinkan, aktifkan profil "Apache Full" untuk mengizinkan HTTP dan HTTPS:

Terminal
sudo ufw allow 'Apache Full'
sudo ufw delete allow 'Apache'

Periksa kembali status untuk memastikan HTTPS diizinkan:

Terminal
sudo ufw status

Langkah 4 — Mendapatkan Sertifikat SSL

Jalankan Certbot dengan plugin Apache untuk mendapatkan dan mengonfigurasi sertifikat SSL:

Terminal
sudo certbot --apache

Ikuti petunjuk yang muncul, mulai dari memasukkan alamat email hingga menyetujui persyaratan layanan. Certbot akan mendeteksi domain dari konfigurasi virtual host dan memungkinkan Kamu memilih domain yang ingin diaktifkan HTTPS-nya.

Setelah selesai, Kamu akan mendapatkan pesan konfirmasi bahwa sertifikat berhasil diperoleh dan diinstal.

Langkah 5 — Memverifikasi Pembaruan Otomatis Certbot

Certifikat Let's Encrypt berlaku selama 90 hari. Certbot menyertakan skrip pembaruan otomatis yang berjalan dua kali sehari melalui layanan certbot.timer. Periksa status layanan ini:

Terminal
sudo systemctl status certbot.timer

Untuk menguji proses pembaruan, jalankan perintah berikut:

Terminal
sudo certbot renew --dry-run

Jika tidak ada kesalahan, Kamu sudah siap. Certbot akan secara otomatis memperbarui sertifikat dan memuat ulang Apache jika diperlukan.

Kesimpulan

Kamu telah menginstal Certbot, mengonfigurasi dan menginstal sertifikat SSL untuk domain Kamu, serta memastikan bahwa layanan pembaruan otomatis Certbot aktif. Dengan ini, situs web Kamu akan menggunakan HTTPS yang aman.

Abd. Asis

Penulis dari artikel ini.

Abd. AsisGo to Abd. Asis profile
Follow me on
Support me

Artikel yang Terkait

Cara Menginstal MySQL 8.0 di Ubuntu 22.04
AAAbd. Asis
Deploy Next.js Dengan Laravel Forge
IAPIrsyad A. Panjaitan
AI-Driven Servers: Bagaimana Kecerdasan Buatan Mengubah Dunia Server
AMAhmad Muzayyin
Keuntungan Menggunakan Laragon dalam Pengembangan Web
JSJenriko Sinaga
Mengenal Readonly Properties Pada PHP 8.1
JSJenriko Sinaga
Cara Menggunakan Constructor Property Promotion di PHP
JSJenriko Sinaga
Pemrograman Berorientasi Objek di PHP: Panduan Lengkap untuk Pemula
JSJenriko Sinaga