Bagaimana cara menambahkan beberapa nama dns ke kepala boneka saya?

16

bonekaku.conf pada master

[master]
certname = myname.mydomain.com
ca_server = myname.mydomain.com
certdnsnames = puppet;puppet.local;myname.dyndns.org;hivemind.local;

untuk pemahaman saya dengan certdnsnames yang didefinisikan berikut ini harus berfungsi:

puppet agent --server myname.dyndns.org --test

tetapi saya mendapatkan kesalahan berikut:

err: Could not retrieve catalog from remote server: hostname was not match with the server certificate

bagaimana cara menghindari kesalahan ini? bagaimana cara mendefinisikan certdnsnames dengan benar? saya telah menemukan dokumentasi yang berbeda tentang ini, tetapi tidak ada contoh sederhana. ii gunakan "," untuk pemisahan, saya tidak bisa masuk sama sekali. Saya juga sudah melihat sintaks seperti

certdnsnames = puppet:puppet.intra.myserver.fr,puppet.myserver.fr:puppet,puppet:puppet,puppet.intra.myserver.fr,puppet.myserver.fr

http://projects.puppetlabs.com/issues/5776

tetapi bagi saya tidak jelas kapan harus menambahkan "boneka:" dan kapan tidak.

c33s
sumber

Jawaban:

25

Demi siapa pun yang menemukan jawaban ini:

Karena CVE-2011-3872 , Wayang tidak lagi mendukung certdnsnamesopsi. Dari dokumentasi:

Pengaturan certdnsnames tidak lagi berfungsi, setelah CVE-2011-3872. Kami mengabaikan nilai sepenuhnya. Untuk permintaan sertifikat Anda sendiri, Anda dapat mengatur dns_alt_names dalam konfigurasi dan itu akan berlaku secara lokal. Tidak ada opsi konfigurasi untuk mengatur nama alt DNS, atau nilai subjectAltName lainnya, untuk sertifikat node lain. Sebagai alternatif, Anda dapat menggunakan opsi baris perintah --dns_alt_names untuk mengatur label yang ditambahkan saat membuat CSR Anda sendiri.

Anda dapat membuat sertifikat SSL untuk server Anda menggunakan subjectAlternativeName seperti ini:

$ puppet cert generate <puppet master's certname> --dns_alt_names=<comma-separated list of DNS names>
larsks
sumber
3
Catatan tambahan: Sebelum menjalankan puppet cert generate, hapus file .pem untuk master boneka di / var / lib / puppet / ssl / private_keys, / var / lib / puppet / ssl / ca / ​​ditandatangani / dan / var / lib / boneka / ssl / certs. Membuat sertifikat baru tidak membunuh konektivitas ke klien yang ada, karena mereka memverifikasi sertifikat kepala dalang menggunakan sertifikat CA, yang mereka unduh pada saat pertama terhubung.
Erik Forsberg
9
Hei, terima kasih Lars dari masa lalu. Kamu baru saja menjawab pertanyaanku.
larsks
2

Untuk Wayang 4+ gunakan perintah berikut untuk mengubah nama dns yang diterima untuk sertifikat puppetserver:

Ubah nama sertifikat yang ada menjadi *. Cadangan:

mv /etc/puppetlabs/puppet/ssl/private_keys/$(hostname -f).pem{,.backup}
mv /etc/puppetlabs/puppet/ssl/ca/signed/$(hostname -f).pem{,.backup}
mv /etc/puppetlabs/puppet/ssl/certs/$(hostname -f).pem{,.backup}

buat sertifikat baru (tambahkan nama alt yang Anda inginkan):

puppet cert generate $(hostname -f) --dns_alt_names=$(hostname -f),puppet

restart boneka untuk menggunakan sertifikat baru

service puppetserver restart
phiphi
sumber
1
kuanta
sumber
maaf karena tidak menerima jawaban ini, saya memiliki masalah terjemahan dengan "titik dua" sehingga jawaban yang lain membantu saya dengan hanya menunjukkan kepada saya char yang tepat :) tetapi terima kasih atas jawaban Anda
c33s
0

Berdasarkan

puppet agent --genconfig

Anda harus menggunakan daftar yang dipisahkan dengan titik dua (":" bukan ";").

Seharusnya begitu

certdnsnames = 'puppet:puppet.local:myname.dyndns.org:hivemind.local'

HTH

cyberkov
sumber
0

Untuk menambahkan entri SAN ke server boneka gunakan:

systemctl stop puppetserver
puppetserver ca setup --subject-alt-names $(hostname -f),puppet
systemctl start puppetserver

mungkin perlu menghapus sertifikat yang ada melalui rm -rf $(puppet master --configprint ssldir)juga

Greg Bray
sumber