{{indexmenu_n>11}}
====== Certbot - Cara generate sertifikate ssl Let's Encrypt DNS-01 Challage with Cloudflare ======
Panduan ini menjelaskan cara mendapatkan sertifikat TLS tepercaya menggunakan **DNS Challenge** melalui Certbot.
DNS Challenge bekerja dengan cara menambahkan record TXT pada penyedia DNS Anda. Metode ini cukup sederhana karena Anda hanya memerlukan API key dari penyedia DNS (misalnya Cloudflare) agar Certificate Authority (CA) seperti Let's Encrypt dapat menambahkan record TXT secara otomatis.
Berbeda dengan HTTP Challenge yang memerlukan IP publik dan port HTTP (80) terbuka, DNS Challenge tidak memiliki persyaratan tersebut.
====== Prasyarat ======
* API key dari penyedia DNS (tergantung provider)
* Server Linux (Ubuntu)
====== Langkah-langkah ======
===== Instal Plugin Certbot Cloudflare =====
sudo apt update
sudo apt install certbot python3-certbot-dns-cloudflare -y
===== Mendapatkan Cloudflare API Token =====
Anda memerlukan API Token dari Cloudflare agar Certbot dapat memodifikasi record DNS.
Langkah-langkah:
1. Buka Cloudflare Dashboard → https://dash.cloudflare.com/
2. Klik My Profile (pojok kanan atas)
3. Masuk ke menu API Tokens → Create Token
4. Pilih template Edit zone DNS
5. Pilih domain Anda pada bagian Zone Resources
6. Klik Create Token lalu salin token yang dihasilkan
===== Menyimpan Cloudflare API Token di Server =====
Buat file aman untuk menyimpan Cloudflare API token:
sudo mkdir -p /root/.secrets/
sudo nano /root/.secrets/cloudflare.ini
Isi file (ganti your-api-token dengan token Cloudflare Anda):
dns_cloudflare_api_token = your-api-token
Amankan file dengan permission berikut:
sudo chmod 600 /root/.secrets/cloudflare.ini
===== Meminta Sertifikat SSL Menggunakan DNS Challenge =====
Domain tunggal:
sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d yourdomain.com
Wildcard certificate (semua subdomain):
sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.secrets/cloudflare.ini -d "*.yourdomain.com" -d "yourdomain.com"
Certbot akan membuat record DNS TXT secara otomatis untuk verifikasi domain.
Jika berhasil, sertifikat akan tersimpan di:
/etc/letsencrypt/live/yourdomain.com/
===== Lokasi File Sertifikat SSL =====
* Full Certificate Chain: ''/etc/letsencrypt/live/yourdomain.com/fullchain.pem''
* Private Key: ''/etc/letsencrypt/live/yourdomain.com/privkey.pem''
* CA Certificate: ''/etc/letsencrypt/live/yourdomain.com/chain.pem''
===== Perpanjangan Sertifikat SSL =====
Sertifikat Let's Encrypt berlaku selama 90 hari.
Untuk memperpanjang otomatis:
certbot renew
Disarankan menjalankan perintah ini menggunakan cron job.