Selama bertahun-tahun, Let's Encrypt hanya umum digunakan untuk menerbitkan sertifikat SSL/TLS berbasis domain, seperti example.com atau api.example.com. Namun sekarang Let's Encrypt sudah mendukung IP address certificate, sehingga server bisa diakses langsung melalui HTTPS menggunakan alamat IP, misalnya https://203.0.113.10.
Dukungan ini telah tersedia secara umum sejak Januari 2026, dengan ketentuan bahwa sertifikat IP address Let's Encrypt menggunakan profil short-lived dan berlaku sekitar enam hari. Let's Encrypt juga menyatakan bahwa sertifikat IP address mendukung IPv4 maupun IPv6.
Fitur ini sudah tersedia secara umum, tetapi ada satu perbedaan besar dibanding sertifikat domain biasa: sertifikat IP address dari Let's Encrypt wajib menggunakan profil short-lived dan berlaku sekitar 160 jam, atau kurang lebih 6 hari. Karena masa berlakunya pendek, renewal otomatis wajib dikonfigurasi dengan benar.
Artikel ini membahas langkah lengkap mulai dari instalasi Certbot, membuat sertifikat IP, memasang sertifikat ke Nginx, sampai mengatur auto-renewal.
1. Prasyarat
Pastikan beberapa hal berikut sudah terpenuhi:
-
Server harus memiliki IP publik, bukan IP lokal seperti:
10.x.x.x 172.16.x.x 192.168.x.xContoh IP publik:
103.168.XXX.149 -
Port 80 dan 443 juga harus terbuka dari internet.
Let's Encrypt perlu melakukan validasi ke server kamu menggunakan metode HTTP atau TLS-ALPN. Untuk IP address certificate, DNS challenge tidak bisa digunakan karena validasi dilakukan terhadap kontrol atas IP, bukan domain.Cek firewall:
# Check Status UFW sudo ufw status # Jika memakai UFW, buka port HTTP dan HTTPS: sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reloadJika server berada di cloud provider seperti VPS, AWS, GCP, Azure, DigitalOcean, atau sejenisnya, pastikan juga security group/firewall provider mengizinkan port 80 dan 443.
2. Update Sistem
Untuk Ubuntu/Debian:
sudo apt update
sudo apt upgrade -y
Pasang paket dasar:
sudo apt install -y curl wget ca-certificates gnupg lsb-release
3. Install Nginx
Jika Nginx belum terpasang:
sudo apt install -y nginx
Aktifkan agar berjalan otomatis saat boot:
sudo systemctl enable nginx
sudo systemctl start nginx
Periksa statusnya:
sudo systemctl status nginx
Uji akses melalui browser:
http://103.168.XXX.149
Jika Nginx berhasil terpasang, biasanya akan muncul halaman default Nginx.
4. Menginstal Certbot Versi Terbaru
Untuk IP address certificate, gunakan Certbot versi baru yang sudah mendukung opsi --ip-address. Certbot mengumumkan dukungan untuk IP address certificate dan profil short-lived pada 2026; untuk saat ini Certbot bisa mengambil sertifikat IP address, tetapi belum otomatis memasangnya ke web server, sehingga konfigurasi Nginx masih perlu diedit manual.
Cara yang paling direkomendasikan di Ubuntu/Debian adalah menggunakan snap, karena paket Certbot dari repository apt sering lebih lama tertinggal.
Install snapd:
sudo apt install -y snapd
Install core snap:
sudo snap install core
sudo snap refresh core
Install Certbot:
sudo snap install --classic certbot
Buat symbolic link agar perintah certbot bisa dipanggil langsung:
sudo ln -sf /snap/bin/certbot /usr/bin/certbot
Cek versi Certbot:
certbot --version
Cek apakah opsi IP address tersedia:
certbot --help all | grep ip-address
Jika muncul opsi --ip-address, berarti Certbot sudah mendukung pembuatan certificate untuk IP address.
5. Siapkan Webroot untuk ACME Challenge
Agar Certbot bisa memperbarui sertifikat tanpa mematikan Nginx, gunakan metode webroot. Dengan metode ini, Nginx tetap berjalan, sementara Certbot hanya menaruh file validasi di folder tertentu.
Buat folder challenge:
sudo mkdir -p /var/www/letsencrypt/.well-known/acme-challenge
Atur permission:
sudo chown -R www-data:www-data /var/www/letsencrypt
sudo chmod -R 755 /var/www/letsencrypt
6. Konfigurasi Nginx untuk HTTP dan ACME Challenge
Buat file konfigurasi baru:
sudo nano /etc/nginx/sites-available/ip-ssl
Isi dengan konfigurasi berikut. Ganti 103.168.XXX.149 dengan IP publik server kamu.
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name 103.168.XXX.149 _;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt;
}
location / {
return 301 https://103.168.XXX.149$request_uri;
}
}
Aktifkan konfigurasi:
sudo ln -s /etc/nginx/sites-available/ip-ssl /etc/nginx/sites-enabled/ip-ssl
Jika masih ada konfigurasi default yang bentrok, hapus symlink default:
sudo rm -f /etc/nginx/sites-enabled/default
Test konfigurasi Nginx:
sudo nginx -t
Reload Nginx:
sudo systemctl reload nginx
7. Request SSL Certificate untuk IP Address
Sekarang buat sertifikat IP address menggunakan Certbot.
sudo certbot certonly \
--webroot \
-w /var/www/letsencrypt \
--preferred-profile shortlived \
--ip-address 103.168.XXX.149
Penjelasan:
certonly — Artinya Certbot hanya mengambil sertifikat, tidak mengubah konfigurasi Nginx.
--webroot -w /var/www/letsencrypt — Artinya validasi Let's Encrypt akan dilakukan melalui folder webroot tersebut.
--preferred-profile shortlived — Wajib untuk IP address certificate Let's Encrypt.
--ip-address 103.168.XXX.149 — IP publik yang akan dimasukkan ke certificate.
Let's Encrypt mewajibkan IP address certificate memakai profil short-lived, dan Certbot menyebutkan bahwa IP certificate harus diminta menggunakan profil shortlived.
Jika berhasil, sertifikat biasanya tersimpan di:
/etc/letsencrypt/live/103.168.XXX.149/fullchain.pem
/etc/letsencrypt/live/103.168.XXX.149/privkey.pem
Cek sertifikat:
sudo certbot certificates
8. Deploy Certificate ke Nginx
Setelah certificate berhasil dibuat, edit konfigurasi Nginx:
sudo nano /etc/nginx/sites-available/ip-ssl
Gunakan konfigurasi lengkap berikut:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name 103.168.XXX.149 _;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt;
}
location / {
return 301 https://103.168.XXX.149$request_uri;
}
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name 103.168.XXX.149;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
ssl_certificate /etc/letsencrypt/live/103.168.XXX.149/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/103.168.XXX.149/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
location / {
try_files $uri $uri/ =404;
}
}
Test konfigurasi:
sudo nginx -t
Reload Nginx:
sudo systemctl reload nginx
Sekarang akses:
https://103.168.XXX.149
Jika berhasil, browser akan menampilkan koneksi HTTPS dengan sertifikat valid untuk IP tersebut seperti screenshot dibawah ini
9. Kesimpulan
Let's Encrypt sekarang bisa digunakan untuk membuat SSL certificate langsung pada IP address. Namun ada beberapa hal penting yang harus diperhatikan:
IP harus berupa IP publik.
Sertifikat IP wajib memakai profil short-lived.
Masa berlaku sertifikat sekitar 6 hari.
Certbot dapat mengambil sertifikat IP, tetapi konfigurasi Nginx perlu dipasang manual.
Auto-renewal wajib berjalan dengan baik.
Setelah renewal, Nginx cukup di-reload, tidak perlu dimatikan.
Dengan konfigurasi yang benar, server dapat diakses langsung tanpa perlu domain tambahan.