Сертифікат лялькового агента підтверджує збій


10

У мене налаштований Майстер ляльок / агент і успішно підписав сертифікат агента на майстра. Однак, коли я бігаю, у puppet agent --testмене виникає збій, який виглядає приблизно так:

Warning: Unable to fetch my node definition, but the agent run will continue:  
Warning: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Info: Retrieving plugin  
Error: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Error: /File[/var/lib/puppet/lib]: Could not evaluate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com] Could not retrieve file metadata for puppet://hostname.domain.com/plugins: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Error: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Warning: Not using cache on failed catalog   
Error: Could not retrieve catalog; skipping run  
Error: Could not send report: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  

hostname.domain.comє майстер

Як це виправити? Я переконався, що обидва годинники знаходяться в потрібний час в одному часовому поясі, я видалив усе з /var/lib/puppet/sslкаталогу агентів і подав у відставку, не знаю, що ще робити.


Здається, ваш господар використовує інший сертифікат, ніж довіряє ваш клієнт? Чи змінився сертифікат майстра?
Шейн Мадден

@ShaneMadden Я не думаю, що так ... чи варто чистити та відкликати сертифікати майстрів та клієнтів? Я взагалі не поспішав із сертифікатами майстрів, але ось, як виглядає вихід із списку "ляльковий сертифікат - всі": + "masterhost.domain.com" (SHA1) E1: F7: 6A: 21: CB: CD: xx: xx: xx: xx ... + "agenthost.domain.com" (SHA256) 5A: D9: 7B: 96: 0B: FF: E4: 87: 58: AF: 00: xx: xx: xx : xx ..
Джон Сміт

І masterhost.domain.comце те саме, що hostname.domain.comу вашому питанні, правда? Спробуємо це, ми побачимо, чи сертифікати перевіряються вручну; запустіть openssl s_client -connect masterhost.domain.com:8140 -showcertsі скопіюйте дані сертифіката (починається з -----BEGIN CERTIFICATE-----, включіть цей рядок і кінцевий рядок сертифіката) у новий файл, потім запустіть openssl verify -CAfile /var/lib/puppet/ssl/certs/ca.pem /path/to/file/from/last/commandі подивіться, чи перевіряється він.
Шейн Мадден

@ShaneMadden Схоже, щось не так ... Коли я запустив команду "-showcerts", він дав мені два сертифікати "start" і "end", тому я спробував спочатку додати один із них до нового файлу, і отримав це: / var / lib / puppet / ssl / ca / ​​test: /CN=masterhost.domain.com помилка 7 при пошуку глибини 0: помилка підпису сертифіката 22297: помилка: 0407006A: підпрограми rsa: RSA_padding_check_PKCS1_type_1: тип блоку не 01: rsa_pk1.c: 100: 22297: помилка: 04067072: ЗГА процедура: RSA_EAY_PUBLIC_DECRYPT: перевірка заповнення не вдалася: rsa_eay.c: 697: 22297: помилка: 0D0C5006: ASN1 кодує підпрограм: ASN1_item_verify: EVP Lib: a_verify.c: 173:
Джон Сміт

Це дивно. Це здається, що він надсилає кореневий сертифікат на додаток до cert сервера під час з'єднання, тож, можливо, просто порівняйте вміст другого cert -showcertsз вмістом /var/lib/puppet/ssl/certs/ca.pem- вони повинні бути однаковими?
Шейн Мадден

Відповіді:


13

Заново створіть цілі налаштування сертифіката клієнта. Це завжди виправляло будь-які проблеми, які ми мали у минулому. Наступна інструкція передбачає ім'я хоста вашого агента agenthost.hostname.com

Видаліть на клієнті всі збережені серти, включаючи CA:

find /var/lib/puppet/ssl -name '*.pem' -delete

Видаліть будь-які очікувані CSR або старі клієнтські сертифікати для цього клієнта:

find /var/lib/puppet/ssl -name agenthost.domain.com.pem -delete

Потім на клієнті підключіться до ведучого та надішліть CSR:

puppet agent -t --waitforcert=60

і коли він чекає (якщо ви не встановили автоматичне налаштування, увімкнено CSS, щоб новий сервер клієнта був відправлений назад:

puppet cert sign agenthost.domain.com

Це повинно змусити агента перезавантажити сертифікати CA для ляльок та подати заявку на власний сертифікат.

Ми повинні були використовувати цю процедуру в минулому, коли ми змінювали лялькові сервери і змінювались сертифікати CA, або коли ми перебудовували хост з тим же ім'ям хоста.

Переконайтесь, що ваш агент знає своє справжнє повністю кваліфіковане ім’я хоста; використовуйте команду 'ім'я хоста', щоб переконатися, що це саме те, що ви очікуєте.


3
Майстер, puppet cert clean ‘agentName’працює на мене. RHEL Puppet Enterprise Ssl розташування: /etc/puppetlabs/puppet/ssl. І я синхронізував час між майстром і агентом.
Іван Чау

Puppet Enterprise та новіша Puppet 4, зберігають їхні сертифікати під / etc / puppetlabs / puppet / ssl, як згадувалося вище. Місце / var / lib / puppet / ssl призначене для спільнот Puppet 2.x та 3.x.
Стів Шипвей

6

У мене схожа проблема. Я створив бродяче середовище з одним ляльковим майстром та кількома клієнтами. Проблема полягає в тому, що коли я знищую і створюю лялькового майстра, клієнти виявляють нового лялькового майстра як самозванця.

Видалення /etc/puppet/sslна клієнті вирішує проблему.

Пам’ятайте, що ваша конфігурація ssl буде кешована, тому потрібен перезапуск майстра ляльок , якщо ви вирішите також видалити свій /etc/puppet/sslхост на цьому хості:

sudo /etc/init.d/puppetmaster restart

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