SSL - Let's Encrypt Nginx RockyLinux
Berikut adalah langkah-langkah untuk mengonfigurasi SSL Let's Encrypt di server Nginx :
- Instal EPEL Repository dan CertbotĀ
Anda perlu menginstal EPEL repository dan Certbot :
sudo dnf install epel-release
sudo dnf install certbot python3-certbot-nginx
- Membuka Port 80 dan 443
Pastikan port 80 (HTTP) dan 443 (HTTPS) terbuka di firewall :
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo 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.