This is an old revision of the document!
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.