Konflik CNAME dan TXT Mengakibatkan Masalah Pengajuan Sertifikat

Konflik CNAME dan TXT dengan Prefix yang Sama Tidak Dapat Berdampingan

Mereka yang pernah merakit domain mungkin tahu bahwa catatan (A,AAAA) tidak dapat berdampingan dengan CNAME, tetapi mungkin belum pernah mengalami konflik antara TXT dan CNAME.

Dalam situasi apakah TXT dan CNAME akan menggunakan prefix yang sama?

Salah satu skenarionya adalah ketika mengajukan sertifikat LetsEncrypt, menggunakan tantangan DNS-01 untuk memverifikasi kepemilikan domain.

  1. Certbot akan menggunakan ackey dan acsecret atau token, untuk membuat catatan TXT _acme-challenge.example.com
  2. Letsencrypt akan memeriksa catatan TXT, mengonfirmasi bahwa pihak yang mengajukan dapat membuat catatan DNS, membuktikan kepemilikan domain.
  3. Letsencrypt mengeluarkan sertifikat
  4. Certbot membersihkan catatan TXT _acme-challenge.example.com

Jika saat membuat catatan TXT, sudah ada catatan CNAME _acme-challenge.example.com, maka catatan TXT mungkin gagal dibuat, menyebabkan kegagalan verifikasi tantangan domain.

Mengapa catatan CNAME _acme-challenge.example.com ada?

ESA (Edge Security Acceleration) baru yang diluncurkan oleh Alibaba, mirip dengan cloudflare, adalah versi enhanced yang diubah nama dari DCDN (Digital Content Delivery Network). Saat awal penggunaannya, tidak mendukung permintaan domain wildcard secara mandiri, saya menggunakan skrip periodik untuk mengupload sertifikat wildcard yang saya miliki ke ESA, agak sedikit merepotkan dalam pengelolaan. Kemudian keluar DCV Terkelola, memungkinkan permintaan dan pembaruan sertifikat wildcard secara mandiri, mengikuti petunjuk, memang dapat mengelola sertifikat wildcard secara mandiri. Namun masalah yang tersembunyi baru terdeteksi beberapa bulan kemudian. Catatan CNAME ini terus ada, yang akan menghalangi pembuatan catatan TXT dengan prefix yang sama, menyebabkan saya tidak dapat membuktikan kepemilikan domain di tempat lain.

Solusi

Solusi 1: Jangan Gunakan DVC Terkelola

DCV Terkelola mengharuskan menulis _acme-challenge.example.com ke nilai tertentu, esensialnya menyatakan bahwa domain tersebut dimiliki oleh pihak ketiga, dan Anda tidak lagi memiliki kendali atas domain tersebut.

Jika Anda membutuhkan domain wildcard, Anda dapat menggunakan skrip tugas yang memanggil API ESA, secara periodik mengupload sertifikat wildcard ke ESA.

Solusi 2: Jangan Gunakan DNS-01 untuk Memverifikasi Kepemilikan Domain

Certbot menyediakan beberapa metode verifikasi kepemilikan domain (tantangan), selain verifikasi domain akar (DNS-01), Anda juga dapat menggunakan HTTP-01 dan TLS-ALPN-01 dan metode lainnya.

Metode HTTP-01 dan TLS-ALPN-01 memerlukan layanan yang sudah ada terlebih dahulu, setelah verifikasi dapat diakses, baru kemudian diberikan sertifikat.

DNS-01 dapat mendapatkan sertifikat sebelum membangun layanan.

Solusi 3: Hamburkan Tembok Bisnis antara ESA dan Cloud DNS

Kedua bisnis ini milik Alibaba, masing-masing mengimplementasikan satu set API DNS, jika ESA dapat secara mandiri mengatur catatan CNAME atau TXT di Cloud DNS, setelah mendapatkan sertifikat, menghapus catatan, maka tidak akan memengaruhi penggunaan tantangan DNS-01 di tempat lain.

Solusi 4: Jangan Gunakan Alibaba ESA

Di Cloudflare, hal ini tidak terjadi, sertifikat diberikan dengan bebas.