Як додати кілька імен dns до мого лялькового майстра?


16

моя лялька.конф на майстра

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

для мого розуміння з визначеними іменами certdns слід працювати:

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

але я отримую таку помилку:

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

як уникнути цієї помилки? як правильно визначити імена certdns? Я знайшов різні документи про це, але не простий приклад. ii використання "," для відокремлення я взагалі не можу підписати. я також бачив такий синтаксис

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

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

але мені незрозуміло, коли додати "маріонетку", а коли ні.

Відповіді:


25

На користь тому, хто натрапляє на цю відповідь:

Через CVE-2011-3872 Puppet більше не підтримує цю certdnsnamesопцію. З документації:

Після CVE-2011-3872 налаштування certdnsname більше не функціонує. Ми цілком ігноруємо значення. Для власного запиту на сертифікат ви можете встановити dns_alt_names в конфігурації, і він застосовуватиметься локально. Немає можливості конфігурації для встановлення імен alt DNS або будь-якого іншого значення subjectAltName для іншого сертифіката вузлів. Ви також можете скористатися параметром командного рядка --dns_alt_names для встановлення доданих міток під час генерації вашої власної CSR.

Ви можете генерувати сертифікат SSL для свого сервера, використовуючи subjectAlternativeName, як це:

$ puppet cert generate <puppet master's certname> --dns_alt_names=<comma-separated list of DNS names>

3
Додаткова примітка: Перш ніж запустити генерацію лялечного сертифікату, видаліть. / ssl / certs. Генерування нового сертифіката не знищує підключення до існуючих клієнтів, оскільки вони підтверджують сертифікат лялькового майстра за допомогою сертифіката СА, який вони завантажили під час першого підключення.
Ерік Форсберг

9
Гей, дякую Ларсу з минулого. Ви щойно відповіли на моє запитання.
larsks

2

Для лялечки 4+ використовуйте такі команди, щоб змінити прийняті імена dns для сертифікату лялькового сервера:

Перейменуйте існуючі сертифікати на * .backup:

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}

створити новий сертифікат (додати потрібні імена alt):

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

перезапустіть ляльковий сервер для використання нових сертифікатів

service puppetserver restart

1
  • По-перше, certdnsnamesце розділений двокрапкою список.
  • По-друге, ця помилка виникає через те, що агент звертається до майстра за допомогою імені хоста, яке не було включено під час підписання сертифікату: http://docs.puppetlabs.com/guides/troubleshooting.html

вибачте за те, що не прийняли цю відповідь, у мене була проблема перекладу з "двокрапка", тому інша відповідь допомогла мені, просто показавши мені правильну таблицю :), але дякую за вашу відповідь
c33s

0

Згідно з

puppet agent --genconfig

ви повинні використовувати розділений двокрапкою (":" не ";") список.

Так і має бути

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

HTH


0

Щоб додати запис SAN в сервер лялькових серверів, використовуйте:

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

може знадобитися очистити існуючі сертифікати через rm -rf $(puppet master --configprint ssldir)а

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.