Skip to main content

SSL - Let's Encrypt Nginx RockyLinux

Berikut adalah langkah-langkah untuk mengonfigurasi SSL Let's Encrypt di server Nginx :

  • Instal CertbotEPEL Repository dan PluginCertbot Nginx

    Certbot adalah klien otomatis untuk memperoleh dan memperbarui sertifikat SSL dari Let's Encrypt. Pertama, Anda perlu menginstal CertbotEPEL repository dan pluginCertbot Nginx.:

Pada distribusi berbasis Debian/Ubuntu, jalankan :

sudo aptdnf updateinstall epel-release
sudo aptdnf install certbot python3-certbot-nginx
  • Membuka Port 80 dan 443

    Pastikan port 80 (HTTP) dan 443 (HTTPS) terbuka di firewall :
sudo ufwfirewall-cmd allow--permanent 'Nginx Full'--add-service=http
sudo ufwfirewall-cmd delete--permanent allow--add-service=https
'Nginxsudo HTTP'firewall-cmd --reload
  • Mendapatkan Sertifikat SSL

    Gunakan Certbot untuk mendapatkan sertifikat SSL untuk domain Anda. Gantikan ilusidgital.com dengan domain Anda, tambahakan -d jika ada domain tambahan lainnya :
sudo certbot --nginx -d ilusidigital.com -d www.ilusidigital.com

Certbot akan otomatis mengkonfigurasi Nginx untuk menggunakan sertifikat yang diperoleh.

  • Verifikasi Konfigurasi Nginx

Certbot akan memperbarui konfigurasi Nginx Anda untuk menggunakan sertifikat SSL yang diperoleh. Verifikasi bahwa konfigurasi telah diperbarui dengan benar dengan membuka file konfigurasi Nginx untuk domain Anda. Biasanya berada di /etc/nginx/conf.d/ilusidigital.conf.

Contoh blok server Nginx untuk HTTPS :

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name ilusidigital.com www.ilusidigital.com;

    ssl_certificate /etc/letsencrypt/live/ilusidigital.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ilusidigital.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  • Mengatur Redirect HTTP ke HTTPS

    Untuk mengarahkan semua lalu lintas HTTP ke HTTPS, tambahkan blok server berikut :
server {
    listen 80;
    listen [::]:80;
    server_name ilusidigital.com www.ilusidigital.com;

    location / {
        return 301 https://$host$request_uri;
    }
}
  • Restart Nginx

    Setelah semua konfigurasi selesai, restart Nginx untuk menerapkan perubahan :
sudo systemctl restart nginx
  • Mengatur Pembaruan Otomatis Sertifikat

    Let's Encrypt sertifikat hanya berlaku selama 90 hari. Untuk memastikan sertifikat Anda selalu diperbarui, tambahkan cron job untuk menjalankan pembaruan otomatis :
echo "0 3 * * * /usr/bin/certbot renew --quiet" | sudo tee -a /etc/crontab > /dev/null

Dengan langkah-langkah di atas, Anda akan memiliki server Nginx yang dikonfigurasi untuk menggunakan sertifikat SSL dari Let's Encrypt, memastikan bahwa komunikasi antara server dan klien dienkripsi dengan aman.