Let's Encrypt telah mengumumkan bahwa mereka memiliki:
Mengaktifkan dukungan untuk tantangan ACME DNS
Bagaimana cara saya membuat ./letsencrypt-auto
sertifikat baru menggunakan validasi domain tantangan DNS?
EDIT
Maksud saya: Bagaimana cara menghindari http/https
pengikatan port, dengan menggunakan fitur yang baru diumumkan (2015-01-20) yang memungkinkan Anda membuktikan kepemilikan domain dengan menambahkan catatan TXT spesifik di zona DNS dari domain target?
lets-encrypt
Pierre Prinetti
sumber
sumber
Jawaban:
Saat ini dimungkinkan untuk melakukan validasi DNS juga dengan klien LetsEncrypt certbot dalam mode manual. Otomatisasi juga dimungkinkan (lihat di bawah).
Plugin manual
Anda dapat melakukan verifikasi manual - dengan plugin manual.
Certbot kemudian akan memberi Anda petunjuk untuk memperbarui data TXT untuk domain secara manual untuk melanjutkan validasi.
Setelah Anda memperbarui catatan DNS, tekan Enter, certbot akan melanjutkan dan jika LetsEncrypt CA memverifikasi tantangan, sertifikat dikeluarkan seperti biasa.
Anda juga dapat menggunakan perintah dengan lebih banyak opsi untuk meminimalkan interaktivitas dan menjawab pertanyaan certbot. Perhatikan bahwa plugin manual belum mendukung mode non-interaktif.
Pembaruan tidak berfungsi dengan plugin manual karena berjalan dalam mode non-interaktif. Info lebih lanjut di dokumentasi Certbot resmi .
Pembaruan: kait manual
Dalam versi Certbot baru Anda dapat menggunakan kait , misalnya
--manual-auth-hook
,--manual-cleanup-hook
. Hooks adalah skrip eksternal yang dijalankan oleh Certbot untuk melakukan tugas.Informasi diteruskan dalam variabel lingkungan - misalnya, domain untuk divalidasi, token tantangan. Vars:
CERTBOT_DOMAIN
,CERTBOT_VALIDATION
,CERTBOT_TOKEN
.Anda dapat menulis handler Anda sendiri atau menggunakan yang sudah ada, ada banyak tersedia, misalnya, untuk Cloudflare DNS.
Info lebih lanjut tentang dokumentasi kait Certbot resmi
Otomasi, Pembaruan, Scripting
Jika Anda ingin mengotomatiskan validasi tantangan DNS, saat ini tidak dimungkinkan dengan vanila certbot.Pembaruan: beberapa otomatisasi dimungkinkan dengan kait Certbot.Karena itu, kami membuat plugin sederhana yang mendukung scripting dengan otomatisasi DNS. Ini tersedia sebagai certbot-external-auth .
Ini mendukung metode validasi DNS, HTTP, TLS-SNI. Anda dapat menggunakannya dalam mode handler atau mode output JSON.
Mode handler
Dalam mode handler, plugin certbot + memanggil kait eksternal (program, skrip shell, python, ...) untuk melakukan validasi dan instalasi. Dalam prakteknya Anda menulis skrip handler / shell sederhana yang mendapat argumen input - domain, token dan membuat perubahan dalam DNS. Ketika pawang selesai, certbot melanjutkan dengan validasi seperti biasa.
Ini memberi Anda fleksibilitas ekstra, pembaruan juga dimungkinkan.
Mode handler juga kompatibel dengan kait DNS Dehidrasi (mantan letsencrypt.sh). Sudah ada banyak kait DNS untuk penyedia umum (mis., CloudFlare, GoDaddy, AWS). Dalam repositori ada README dengan contoh luas dan contoh penangan.
Contoh dengan kait DNS Dehidrasi :
Mode JSON
Mode plugin lain adalah mode JSON. Ini menghasilkan satu objek JSON per baris. Ini memungkinkan integrasi yang lebih rumit - misalnya, Ansible atau beberapa manajer penyebaran memanggil certbot. Komunikasi dilakukan melalui STDOUT dan STDIN. Cerbot menghasilkan objek JSON dengan data untuk melakukan validasi, misalnya,
Setelah DNS diperbarui, pemanggil mengirim karakter baris baru ke STDIN dari certbot untuk menandakannya dapat melanjutkan validasi.
Ini memungkinkan otomatisasi dan manajemen sertifikat dari server manajemen pusat. Untuk instalasi, Anda dapat menggunakan sertifikat melalui SSH.
Untuk info lebih lanjut silakan merujuk ke readme dan contoh-contoh di GitHub certbot-external-auth .
EDIT: Ada juga posting blog baru yang menjelaskan masalah validasi DNS dan penggunaan plugin.
EDIT: saat ini kami mengerjakan validasi 2 langkah yang mungkin, akan segera dimatikan.
sumber
certbot certonly --preferred-challenges dns -d example.com
) untuk permintaan awal. Setelah menguji dan mengganti A-record, gunakan metode webroot umum (certbot certonly webroot -d example.com -w /path/to/webroot
) menggunakan nama domain yang sama persis seperti sebelumnya. Jika dilakukan dengan benar, certbot akan mengenali sertifikat / konfigurasi yang ada dan akan memperbarui pengaturan pembaruan, sehingga sertifikat akan diperpanjang secara otomatis di masa mendatang.Saya dapat menggunakan
dehydrated
klien untuk mendapatkan sertifikat menggunakan validasi DNS.https://github.com/lukas2511/dehydrated
Anda harus menggunakan kait validasi DNS yang benar untuk domain Anda, tetapi ada beberapa opsi yang tersedia sebagai contoh:
https://github.com/lukas2511/dehydrated/wiki/Examples-for-DNS-01-hooks
sumber
route53.rb
skrip kait.Sampai hari ini, klien resmi tidak mendukung jenis tantangan DNS-01 (belum).
Lihat https://community.letsencrypt.org/t/status-of-official-letsencrypt-clients-dns-01-challenge-support/9427
Anda dapat mengikuti kemajuan di PR ini . Atau, ada beberapa klien yang sudah mendukungnya.
sumber
Saya menulis sebuah skrip kait untuk klien letsencrypt.sh yang memungkinkan Anda untuk menggunakan Verifikasi DNS Lets Enkripsi untuk penyedia DNS yang tidak menyediakan api untuk digunakan (alias, entri manual dan verifikasi diperlukan).
Anda dapat memeriksanya di sini: https://github.com/jbjonesjr/letsencrypt-manual-hook
sumber
Seperti disebutkan dalam jawaban sebelumnya, Anda dapat dengan mudah memverifikasi domain dengan DNS dengan ini:
apt-get install -y git ruby letsencrypt git clone https://github.com/lukas2511/dehydrated.git git clone https://github.com/jbjonesjr/letsencrypt-manual-hook.git dehydrated/hooks/manual
./dehydrated/dehydrated -c -t dns-01 -d www.example.com -k ./dehydrated/hooks /manual/manual_hook.rb
sumber
Setelah mencoba kombinasi yang berbeda, inilah yang bekerja untuk saya menggunakan repositori git dehidrasi dan letsencrypt-manual-hook . Jika langkah-langkah di bawah ini cocok untuk Anda, jangan lupa untuk memberi bintang pada repositori ini
CATATAN: Ini merupakan tambahan untuk jawaban panticz.de dan alexcline
Anda akan mendapatkan hash (setelah menjalankan perintah di atas), buat data TXT di DNS Anda. Pastikan itu bekerja dengan menjalankan perintah di bawah ini atau GSuite Toolbox
Sekarang, tekan enter saat diminta. Ini tidak berhasil untuk saya meskipun catatan TXT telah diperbarui. Saya harus menekan Ctrl + C dan menjalankan perintah lagi.
Sekarang, sertifikat publik dan pribadi Anda hadir di sini.
Untuk memperbarui (waktu tunggu minimum adalah 30 hari), cukup perintah yang sama lagi.
sumber
Hugo Landau menulis klien ACME di Go ( https://github.com/hlandau/acme ) yang mendukung tantangan DNS (dengan protokol nsupdate BIND). Sudah bekerja dengan sempurna untuk saya setidaknya selama 18 bulan.
sumber