Lewati ke konten

5. HTTPS dengan Let's Encrypt

HTTPS mengenkripsi data antara pengunjung dan server, sehingga password dan isi halaman tidak bisa diintip di jaringan. Browser modern menandai situs HTTP sebagai “Not secure”, dan banyak fitur browser hanya jalan di HTTPS. Untungnya, Let’s Encrypt memberikan sertifikat gratis, dan certbot memasangnya otomatis.

  1. Domain sudah punya record A yang mengarah ke IP publik server. Cek dengan dig +short domain-kamu.
  2. Port 80 dan 443 terbuka di firewall (sudo ufw allow 'Nginx Full').
  3. Ada server block dengan server_name yang sesuai domain, dan situsnya sudah bisa diakses lewat HTTP.
Terminal window
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d lab.gstnv-lab.xyz

Certbot membuktikan kamu memiliki domain itu, mengambil sertifikat, lalu mengubah konfigurasi nginx secara otomatis:

server {
server_name lab.gstnv-lab.xyz;
root /var/www/lab;
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/lab.gstnv-lab.xyz/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/lab.gstnv-lab.xyz/privkey.pem; # managed by Certbot
}
server {
if ($host = lab.gstnv-lab.xyz) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name lab.gstnv-lab.xyz;
return 404; # managed by Certbot
}

Blok kedua mengalihkan semua pengunjung HTTP ke HTTPS dengan 301. Konfigurasi GSTNV-LAB yang sebenarnya punya bentuk yang persis seperti ini.

Sertifikat Let’s Encrypt berlaku 90 hari. Certbot memasang jadwal perpanjangan otomatis; kamu cukup memastikan prosesnya berjalan:

Terminal window
sudo certbot renew --dry-run
sudo certbot certificates
Lab: HTTPS gratis dengan Let’s Encrypt
Misi 0/7
  1. Pastikan situs sudah bisa diakses lewat HTTP.
    Petunjukcurl -I http://lab.gstnv-lab.xyz
  2. Pasang certbot beserta plugin nginx.
    Petunjuksudo apt install certbot python3-certbot-nginx
  3. Minta sertifikat dan pasang otomatis ke nginx.
    Petunjuksudo certbot --nginx -d lab.gstnv-lab.xyz
  4. Lihat perubahan yang dibuat certbot di konfigurasi.
    Petunjukcat /etc/nginx/sites-available/lab
  5. Akses lewat HTTP lagi — sekarang dialihkan ke HTTPS.
    Petunjukcurl -I http://lab.gstnv-lab.xyz
  6. Buka situs lewat HTTPS.
    Petunjukcurl https://lab.gstnv-lab.xyz
  7. Uji perpanjangan otomatis sertifikat.
    Petunjuksudo certbot renew --dry-run