Untuk penjelasan mendetail tentang cara kerja tantangan Let's Encrypt DNS-01 (atau validasi DNS), baca artikel berjudul Apa Itu Tantangan Let's Encrypt DNS-01 dan Cara Menggunakannya untuk Mendapatkan Sertifikat SSL.
Pada artikel ini, kami akan menunjukkan cara menggunakan validasi Let's Encrypt DNS untuk mendapatkan sertifikat SSL untuk nama domain Anda menggunakan plugin Certbot dan Certbot CloudFlare DNS.
Topik Isi:
- Mengelola Domain Anda dengan CloudFlare DNS
- Menginstal Plugin Certbot dan Certbot CloudFlare di Ubuntu/Debian
- Menginstal Plugin Certbot dan Certbot CloudFlare di Fedora
- Menginstal Plugin Certbot dan Certbot CloudFlare di RHEL/AlmaLinux/Rocky Linux/CentOS Stream
- Memeriksa Apakah Plugin Certbot dan Certbot CloudFlare Diinstal dengan Benar
- Menghasilkan Token API CloudFlare
- Menyimpan Token CloudFlare API dengan Aman di Komputer/Server
- Menghasilkan Sertifikat SSL Menggunakan Validasi DNS Certbot CloudFlare
- Mencantumkan Mari Enkripsi Sertifikat SSL Menggunakan Certbot
- Memperbarui Mari Enkripsi Sertifikat SSL Menggunakan Certbot
- Kesimpulan
- Referensi
Mengelola Domain Anda dengan CloudFlare DNS
Untuk mendapatkan Sertifikat SSL Let’s Encrypt menggunakan validasi DNS CloudFlare, Anda harus memiliki akun CloudFlare dan domain Anda harus menggunakan DNS CloudFlare. Kamu bisa buat akun CloudFlare gratis dan layanan DNS CloudFlare juga gratis untuk digunakan.
Untuk mengelola domain Anda dengan CloudFlare DNS, Anda dapat melakukan salah satu hal berikut:
- Daftarkan domain Anda dari CloudFlare
- Transfer domain Anda ke CloudFlare
- Ubah server nama DNS nama domain Anda menjadi server nama DNS CloudFlare dari dashboard registrar domain Anda
Anda tidak perlu membeli domain dari CloudFlare atau mentransfer domain ke CloudFlare untuk mengelolanya dengan layanan DNS CloudFlare. Anda cukup mengubah server nama domain Anda menjadi server nama DNS CloudFlare dari dasbor pencatat domain Anda (tempat Anda membeli domain) dan mengelola domain Anda dari CloudFlare. Untuk informasi lebih lanjut tentang mengubah nameserver domain Anda menjadi nameserver DNS CloudFlare, baca artikel ini.
Menginstal Plugin Certbot dan Certbot CloudFlare di Ubuntu/Debian
Plugin Certbot dan Certbot CloudFlare tersedia di repositori paket resmi Ubuntu/Debian. Jadi, Anda dapat menginstalnya di Ubuntu/Debian dengan sangat mudah.
Pertama, perbarui cache repositori paket APT dengan perintah berikut:
$ sudo pembaruan yang tepat
Untuk menginstal plugin Certbot dan Certbot CloudFlare DNS, jalankan perintah berikut:
$ sudo tepat Install certbot python3-certbot-dns-cloudflare Untuk mengonfirmasi instalasi, tekan 'Y' lalu tekan
Plugin Certbot dan Certbot CloudFlare DNS sedang diinstal. Butuh beberapa saat untuk menyelesaikannya.
Pada titik ini, plugin Certbot dan Certbot CloudFlare DNS harus diinstal.
Menginstal Plugin Certbot dan Certbot CloudFlare di Fedora
Plugin Certbot dan Certbot CloudFlare tersedia di repositori paket resmi Fedora dan dapat diinstal di Fedora dengan sangat mudah.
Pertama, perbarui database paket DNF dengan perintah berikut:
$ sudo dnf makecache.dnf
Untuk menginstal plugin Certbot dan Certbot CloudFlare DNS di Fedora, jalankan perintah berikut:
$ sudo dnf Install certbot python3-certbot-dns-cloudflare Untuk mengonfirmasi instalasi, tekan 'Y' lalu tekan
Plugin Certbot dan Certbot CloudFlare DNS sedang diinstal. Butuh beberapa saat untuk menyelesaikannya.
Pada titik ini, plugin Certbot dan Certbot CloudFlare DNS harus diinstal di Fedora.
Menginstal Plugin Certbot dan Certbot CloudFlare di RHEL/AlmaLinux/Rocky Linux/CentOS Stream
Plugin Certbot CloudFlare DNS tidak tersedia di repositori paket resmi RHEL/AlmaLinux/Rocky Linux/CentOS Stream. Plugin Certbot CloudFlare DNS tersedia di repositori paket EPEL. Anda dapat mengaktifkan repositori paket EPEL di RHEL/AlmaLinux/Rocky Linux/CentOS Stream dan menginstal plugin Certbot CloudFlare DNS dari sana.
Setelah Anda mengaktifkan repositori paket EPEL, perbarui cache database DNF dengan perintah berikut:
$ sudo dnf makecache.dnf
Kemudian, instal plugin Certbot dan Certbot CloudFlare DNS pada sistem RHEL/AlmaLinux/Rocky Linux/CentOS Stream Anda dengan perintah berikut:
$ sudo dnf Install certbot python3-certbot-dns-cloudflare Untuk mengonfirmasi instalasi, tekan 'Y' lalu tekan
Plugin Certbot dan Certbot CloudFlare DNS sedang diinstal. Butuh beberapa saat untuk menyelesaikannya.
Untuk menerima kunci GPG dari repositori EPEL, tekan “Y” lalu tekan
Pada titik ini, plugin Certbot dan Certbot CloudFlare DNS harus diinstal.
Memeriksa Apakah Plugin Certbot dan Certbot CloudFlare Diinstal dengan Benar
Untuk memeriksa apakah Certbot terinstal di komputer Anda, jalankan perintah berikut:
$ certbot --Versi: kapanJika Certbot diinstal, perintah tersebut akan mencetak nomor versi Certbot yang diinstal di komputer Anda.
Seperti yang Anda lihat, kami telah menginstal Certbot 2.1.0 di mesin Debian kami.
Untuk memeriksa apakah plugin Certbot CloudFlare DNS terinstal di komputer Anda, jalankan perintah berikut:
$ sudo plugin certbotJika plugin Certbot CloudFlare DNS diinstal, Anda akan menemukan “dns-cloudflare” di daftar plugin seperti yang ditandai pada tangkapan layar berikut:
Menghasilkan Token API CloudFlare
Untuk memverifikasi kepemilikan domain, Certbot perlu menambahkan data TXT pada domain yang dikelola oleh server DNS CloudFlare. Untuk itu, Certbot memerlukan akses ke token CloudFlare API. Anda dapat membuat token API untuk domain Anda dari dashboard CloudFlare.
Pertama, masuk ke akun CloudFlare Anda. Kemudian, klik ikon profil Anda
> Profil saya dari sudut kanan atas halaman.
Navigasikan ke bagian “Token API”. [1] dan klik 'Buat Token' [2] .
Klik “Gunakan templat” dari bagian “Edit DNS zona”.
Dari bagian “Izin”, izinkan izin “Edit” ke “Zona DNS” dengan memilih opsi yang ditandai dari menu tarik-turun.
Jika Anda mengelola beberapa domain dengan CloudFlare, Anda dapat mengizinkan modifikasi “Zona Tertentu” dari bagian “Sumber Daya Zona”. Mengizinkan token API untuk mengubah hanya satu zona lebih aman daripada mengizinkan token API untuk mengubah semua zona. Hal ini karena jika token API disusupi, permukaan serangan akan lebih kecil dan lebih sedikit kerusakan yang ditimbulkan.
Jika Anda ingin menggunakan satu kunci API untuk mengubah semua domain yang dikelola CloudFlare, pilih “Semua zona” dari bagian “Sumber Daya Zona”.
Setelah Anda selesai mengonfigurasi token API Anda, klik “Lanjutkan ke ringkasan”.
Ringkasan tindakan yang dapat Anda lakukan pada domain yang dikelola CloudFlare dengan token API akan ditampilkan. Klik 'Buat Token'.
Token API harus dibuat. Salin token API di tempat yang aman agar tidak hilang. Setelah Anda meninggalkan halaman ini, Anda tidak akan dapat menemukan token API ini lagi. Anda harus membuat token API baru jika Anda kehilangannya:
LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5
Menyimpan Token CloudFlare API dengan Aman di Komputer/Server
Certbot perlu menggunakan token CloudFlare API untuk menambahkan data TXT baru untuk domain Anda di server DNS CloudFlare. Jadi, Anda harus menyimpan token CloudFlare API di komputer/server Anda. Menyimpan token API tanpa memastikan izin akses file yang tepat dapat memungkinkan program/pengguna lain memiliki akses ke token API. Ini bukan yang Anda inginkan karena alasan keamanan. Di bagian ini, kami akan menunjukkan cara menyimpan token CloudFlare API dengan aman di sistem file.
Pertama, buat direktori (yaitu ~/.secrets/certbot) tempat Anda ingin menyimpan kunci API CloudFlare sebagai berikut:
$ mkdir -pv ~ / .rahasia / certbot
Buat file “cloudflare.ini” di direktori yang baru dibuat (yaitu ~/.secrets/certbot) dan buka dengan editor teks favorit Anda (yaitu nano) sebagai berikut:
$ nano ~ / .rahasia / certbot / cloudflare.ini Ketik baris berikut di file “cloudflare.ini” dan tekan
Untuk memastikan izin akses yang tepat untuk file “cloudflare.ini”, jalankan perintah berikut untuk memastikan bahwa hanya pengguna root yang memiliki akses baca dan tulis ke file:
$ sudo chown akar:akar ~ / .rahasia / certbot / cloudflare.ini$ sudo chmod 0600 ~ / .rahasia / certbot / cloudflare.ini
Seperti yang Anda lihat, hanya pengguna root yang memiliki izin membaca dan menulis ke file “cloudflare.ini”.
$ aku -lh ~ / .rahasia / certbot / cloudflare.ini
Pengguna lain yang mencoba membaca file “cloudflare.ini” akan mendapatkan pesan kesalahan “Izin ditolak”.
$ kucing ~ / .rahasia / certbot / cloudflare.ini
Menghasilkan Sertifikat SSL Menggunakan Validasi DNS Certbot CloudFlare
Untuk menghasilkan sertifikat SSL Let's Encrypt untuk nama domain wildcard “*.nodekite.com” menggunakan validasi DNS CloudFlare, jalankan perintah cerbot sebagai berikut:
$ sudo certbot tentu saja --dns-cloudflare --dns-cloudflare-kredensial ~ / .rahasia / certbot / cloudflare.ini -D * .nodekite.comUntuk menghasilkan sertifikat SSL Let's Encrypt untuk nama domain “nodekite.com” dan “www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows:
$ sudo certbot tentu saja --dns-cloudflare --dns-cloudflare-kredensial ~ / .rahasia / certbot / cloudflare.ini -D www.nodekite.com -D nodekite.comJika perubahan DNS membutuhkan waktu lama untuk disebarkan ke server nama DNS populer di seluruh dunia, Anda dapat menggunakan opsi “–dns-cloudflare-propagation-seconds” dari Certbot untuk mengatur jumlah detik yang Anda inginkan agar Certbot menunggu sebelum validasi DNS dilakukan.
$ sudo certbot tentu saja --dns-cloudflare --dns-cloudflare-kredensial ~ / .rahasia / certbot / cloudflare.ini --dns-cloudflare-propagasi-detik 60 -D * .nodekite.com Setelah Anda menjalankan perintah Certbot, Anda akan diminta mengetikkan alamat email Anda. Ketikkan alamat email Anda dan tekan
Tekan “Y” lalu tekan
Tekan “Y” lalu tekan
Sertifikat SSL Let's Encrypt sedang diterbitkan. Butuh beberapa saat untuk menyelesaikannya.
Pada titik ini, sertifikat SSL Let's Encrypt diterbitkan. Jalur lengkap tempat file sertifikat SSL disimpan akan ditampilkan. Tanggal kedaluwarsa sertifikat SSL juga harus ditampilkan.
Mencantumkan Mari Enkripsi Sertifikat SSL Menggunakan Certbot
Anda dapat membuat daftar semua sertifikat SSL Let's Encrypt yang Anda buat menggunakan Certbot dengan perintah berikut:
$ sudo sertifikat certbotSeperti yang Anda lihat, sertifikat SSL Let's Encrypt yang dihasilkan untuk domain “nodekite.com” terdaftar [1] . Sertifikat SSL wildcard dikeluarkan untuk “nodekite.com” [2] nama domain. Tanggal kedaluwarsa sertifikat adalah 20-03-2024 (berlaku selama 89 hari) [3] . Sertifikat dan jalur kunci pribadi juga tercantum di sini [4] .
Certbot menyimpan semua sertifikat SSL yang Anda buat untuk domain Anda di direktori “/etc/letsencrypt/live” di foldernya masing-masing.
$ sudo aku -Rlh / dll. / letsencrypt / hidup /
Memperbarui Mari Enkripsi Sertifikat SSL Menggunakan Certbot
Certbot secara otomatis memperbarui semua sertifikat SSL Let's Encrypt yang Anda buat menggunakan validasi DNS CloudFlare.
Untuk menguji apakah fitur perpanjangan otomatis sertifikat SSL Let's Encrypt berfungsi, jalankan perintah berikut:
$ sudo pembaruan certbot --lari keringTindakan perpanjangan otomatis disimulasikan untuk setiap sertifikat SSL Let's Encrypt yang Anda buat.
Jika tesnya berhasil, Anda akan diberi selamat. Pengujian yang berhasil berarti sertifikat SSL akan diperpanjang secara otomatis sebelum masa berlakunya habis. Anda tidak perlu melakukan hal lain.
Agar fitur perpanjangan otomatis Certbot berfungsi, pengatur waktu sistem “cerbot.timer” harus diaktifkan dan aktif di komputer/server Anda.
Anda dapat memeriksa apakah pengatur waktu sistem “cerbot.timer” diaktifkan dan aktif dengan perintah berikut:
$ sudo status sistemctl certbot.timerSeperti yang Anda lihat, pengatur waktu sistem “certbot.timer” diaktifkan (secara otomatis dimulai saat boot) [1] dan aktif [2] . Certbot memeriksa apakah ada kebutuhan untuk memperbarui sertifikat SSL hanya dalam waktu 11 menit (menurut tangkapan layar berikut) dan memperbarui sertifikat SSL yang akan segera kedaluwarsa [3] .
Untuk memeriksa secara manual apakah ada sertifikat SSL yang akan kedaluwarsa dan memperbarui sertifikat SSL yang kedaluwarsa, jalankan perintah berikut:
$ sudo pembaruan certbotDalam kasus kami, tidak ada sertifikat SSL yang akan kedaluwarsa. Jadi, Certbot tidak mencoba memperbarui sertifikat SSL apa pun.
Untuk memaksa Certbot memperbarui sertifikat SSL domain tertentu (misalnya *.nodekite.com), jalankan perintah berikut:
$ sudo certbot tentu saja --memperbarui paksa -D * .nodekite.com Tekan '1' dan tekan
Sertifikat SSL harus diperbarui.
Kesimpulan
Untuk mendapatkan sertifikat SSL Let's Encrypt menggunakan validasi DNS CloudFlare menggunakan Certbot, Anda memerlukan akses ke token API CloudFlare. Pada artikel ini, kami menunjukkan cara membuat token CloudFlare API untuk domain Anda dan menyimpannya dengan aman di komputer/server Anda sehingga Anda dapat mengaksesnya dengan Certbot bila diperlukan. Kami juga menunjukkan kepada Anda cara menginstal Certbot dan plugin Certbot CloudFlare DNS pada distribusi Linux paling populer. Kami menunjukkan kepada Anda cara membuat sertifikat SSL wildcard Let's Encrypt serta sertifikat SSL untuk domain tunggal menggunakan validasi DNS Certbot dan CloudFlare. Terakhir, kami menunjukkan kepada Anda cara memperbarui sertifikat SSL Let's Encrypt menggunakan Certbot secara otomatis dan manual.