Table of Contents

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

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

Perpanjangan Sertifikat SSL

Sertifikat Let's Encrypt berlaku selama 90 hari.

Untuk memperpanjang otomatis:

certbot renew

Disarankan menjalankan perintah ini menggunakan cron job.