Ich habe einen Puppet Master / Agent eingerichtet und das Zertifikat für den Agenten auf dem Master erfolgreich signiert. Beim Ausführen wird puppet agent --test
jedoch ein Fehler angezeigt, der folgendermaßen aussieht:
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]
Das hostname.domain.com
ist der Meister
Wie behebe ich das? Ich habe sichergestellt, dass beide Uhren zur richtigen Zeit in derselben Zeitzone sind. Ich habe alles im Agentenverzeichnis gelöscht /var/lib/puppet/ssl
und bin zurückgetreten. Ich weiß nicht, was ich sonst tun soll.
debian
ssl
puppet
puppetmaster
puppet-agent
John Smith
quelle
quelle
masterhost.domain.com
ist das gleiche wiehostname.domain.com
in Ihrer Frage, oder? Versuchen wir dies, wir werden sehen, ob die Zertifikate manuell überprüft werden. Führen Sieopenssl s_client -connect masterhost.domain.com:8140 -showcerts
die Zertifikatdaten aus und kopieren Sie sie (beginnt mit-----BEGIN CERTIFICATE-----
dieser Zeile und der Endzertifikatzeile) in eine neue Datei. Führen Sie sie dann ausopenssl verify -CAfile /var/lib/puppet/ssl/certs/ca.pem /path/to/file/from/last/command
und prüfen Sie, ob sie überprüft werden.-showcerts
mit dem Inhalt von/var/lib/puppet/ssl/certs/ca.pem
- sollten sie identisch sein?Antworten:
Erstellen Sie das gesamte Client-Zertifikat-Setup neu. Dies hat immer alle Zertifizierungsprobleme behoben, die wir in der Vergangenheit hatten. Bei der folgenden Anweisung wird davon ausgegangen, dass der Hostname Ihres Agenten agenthost.hostname.com lautet
Löschen Sie auf dem Client alle gespeicherten Zertifikate, einschließlich der Zertifizierungsstelle:
Löschen Sie auf dem Master alle ausstehenden CSRs oder alten Client-Zertifikate für diesen Client:
Stellen Sie dann auf dem Client erneut eine Verbindung zum Master her und senden Sie eine CSR:
und wenn es wartet (wenn Sie das automatische Signieren nicht aktiviert haben), genehmigen Sie auf dem Master die CSR, damit ein neues Client-Zertifikat zurückgesendet wird:
Dadurch sollte der Agent die Puppet-CA-Zertifikate erneut herunterladen und erneut ein eigenes Zertifikat beantragen.
Wir mussten dieses Verfahren in der Vergangenheit anwenden, als wir die Puppet-Server und die CA-Zertifikate geändert haben oder wenn wir einen Host mit demselben Hostnamen neu erstellt haben.
Stellen Sie sicher, dass Ihr Agent seinen wirklich vollqualifizierten Hostnamen kennt. Verwenden Sie den Befehl 'hostname', um sicherzustellen, dass er Ihren Erwartungen entspricht.
quelle
puppet cert clean ‘agentName’
arbeitet für mich. RHL Puppet Enterprise SSL-Standort :/etc/puppetlabs/puppet/ssl
. Und ich habe die Zeit zwischen Master und Agent synchronisiert.Ich habe ein ähnliches Problem. Ich habe mit einem Puppenspieler und mehreren Kunden eine vagabundierende Umgebung eingerichtet. Das Problem ist, wenn ich den Puppenmeister zerstöre und erschaffe, erkennen Kunden den neuen Puppenmeister als Betrüger.
Das Löschen
/etc/puppet/ssl
auf dem Client löst das Problem.Denken Sie daran, dass Ihre SSL-Konfiguration zwischengespeichert wird, sodass ein Neustart des Puppet Masters erforderlich ist, wenn Sie Ihre auch
/etc/puppet/ssl
auf diesem Host löschen möchten :quelle
service puppetserver restart