Come aggiungere più nomi DNS al mio burattinaio?


16

il mio burattino.conf sul master

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

per la mia comprensione con i nomi certificati definiti dovrebbe funzionare quanto segue:

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

ma ottengo il seguente errore:

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

come evitare questo errore? come definire correttamente certdnsnames? ho trovato documentazione diversa su questo, ma nessun semplice esempio. io uso "," per la separazione non riesco a firmare affatto. ho anche visto una sintassi simile

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

ma per me non è chiaro quando aggiungere un "pupazzo:" e quando no.

Risposte:


25

A beneficio di chiunque altro inciampa su questa risposta:

A causa di CVE-2011-3872 , Puppet non supporta più l' certdnsnamesopzione. Dalla documentazione:

L'impostazione certdnsnames non è più funzionale, dopo CVE-2011-3872. Ignoriamo completamente il valore. Per la tua richiesta di certificato puoi impostare dns_alt_names nella configurazione e verrà applicato localmente. Non esiste alcuna opzione di configurazione per impostare nomi alt DNS o qualsiasi altro valore subjectAltName per un altro certificato di nodi. In alternativa è possibile utilizzare l'opzione della riga di comando --dns_alt_names per impostare le etichette aggiunte durante la generazione del proprio CSR.

Puoi generare un certificato SSL per il tuo server usando subjectAlternativeName in questo modo:

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

3
Nota aggiuntiva: prima di eseguire il comando Puppet cert generate, rimuovere i file .pem per il burattinaio in / var / lib / puppet / ssl / private_keys, / var / lib / puppet / ssl / ca / ​​signed / e / var / lib / puppet / ssl / certs. La generazione di un nuovo certificato non sta uccidendo la connettività ai client esistenti, poiché verificano il certificato del burattinaio utilizzando il certificato della CA, che hanno scaricato al primo collegamento.
Erik Forsberg,

9
Ehi, grazie Lars del passato. Hai appena risposto alla mia domanda.
Larsks,

2

Per Puppet 4+ utilizzare i seguenti comandi per modificare i nomi DNS accettati per il certificato puppetserver:

Rinomina i certificati esistenti in * .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}

generare un nuovo certificato (aggiungere i nomi alt desiderati):

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

riavviare puppetserver per utilizzare nuovi certificati

service puppetserver restart

1
  • Innanzitutto, certdnsnamesè un elenco separato da due punti.
  • In secondo luogo, questo errore viene visualizzato perché l'agente sta contattando il master utilizzando un nome host che non era incluso al momento della firma del certificato: http://docs.puppetlabs.com/guides/tro troubleshooting.html

scusate se non ho accettato questa risposta, ho avuto un problema di traduzione con "due punti", quindi l'altra risposta mi ha aiutato mostrandomi semplicemente il carattere giusto :) ma grazie per la risposta
c33s

0

Secondo

puppet agent --genconfig

devi usare un elenco separato da due punti (":" non ";").

Quindi dovrebbe essere

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

HTH


0

Per aggiungere una voce SAN al certificato del server fantoccio usare:

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

potrebbe essere necessario cancellare certs esistenti via rm -rf $(puppet master --configprint ssldir)così

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.