SSL - Let's Encrypt Nginx Ubuntu
Berikut adalah langkah-langkah untuk mengonfigurasi SSL Let's Encrypt di server Nginx:Nginx :
- Instal Certbot dan Plugin Nginx
Certbot adalah klien otomatis untuk memperoleh dan memperbarui sertifikat SSL dari Let's Encrypt. Pertama, Anda perlu menginstal Certbot dan plugin Nginx.
Pada distribusi berbasis Debian/Ubuntu, jalankan :
sudo apt update
sudo apt install certbot python3-certbot-nginx
- Membuka Port 80 dan 443
Pastikan port 80 (HTTP) dan 443 (HTTPS) terbuka di firewall :
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
- 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.