SSL/TLS dengan Let's Encrypt — DevOps

Mengapa HTTPS? SSL/TLS mengenkripsi komunikasi antara browser dan server. Tanpa HTTPS, data dikirim dalam plain text dan bisa di-intercept (man-in-the-middle at

Mengapa HTTPS?

SSL/TLS mengenkripsi komunikasi antara browser dan server. Tanpa HTTPS, data dikirim dalam plain text dan bisa di-intercept (man-in-the-middle attack).

Wajib HTTPS Karena:

Let's Encrypt & Certbot

Let's Encrypt menyediakan sertifikat SSL gratis. Certbot adalah tool untuk otomasi pengambilan dan renewal sertifikat.

# Install Certbot
sudo apt install certbot python3-certbot-nginx

# Dapatkan sertifikat (otomatis konfigurasi Nginx)
sudo certbot --nginx -d myapp.com -d www.myapp.com

# Otomatis menambahkan ke Nginx:
# listen 443 ssl;
# ssl_certificate /etc/letsencrypt/live/myapp.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/myapp.com/privkey.pem;

# Test renewal
sudo certbot renew --dry-run

# Certbot otomatis buat cron/systemd timer untuk renewal

Redirect HTTP ke HTTPS

server {
    listen 80;
    server_name myapp.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name myapp.com;

    ssl_certificate /etc/letsencrypt/live/myapp.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/myapp.com/privkey.pem;

    # Security headers
    add_header Strict-Transport-Security "max-age=31536000" always;

    location / {
        proxy_pass http://localhost:3000;
    }
}

Yang akan kamu pelajari