Como adicionar vários nomes de DNS ao meu puppetmaster?

15

meu puppet.conf no mestre

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

para minha compreensão com os certificados definidos, o seguinte deve funcionar:

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

mas recebo o seguinte erro:

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

como evitar esse erro? como definir corretamente certdnsnames? Eu encontrei documentação diffent sobre isso, mas não há um exemplo simples. eu uso "," para separação eu não posso assinar nada. Eu também vi uma sintaxe como

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

link

mas para mim não está claro quando adicionar um "fantoche:" e quando não.

    
por c33s 10.10.2011 / 04:51

4 respostas

25

Para o benefício de qualquer outra pessoa que se depara com esta resposta:

Devido a CVE-2011-3872 , o Puppet não suporta mais a opção certdnsnames . Da documentação:

The certdnsnames setting is no longer functional, after CVE-2011-3872. We ignore the value completely. For your own certificate request you can set dns_alt_names in the configuration and it will apply locally. There is no configuration option to set DNS alt names, or any other subjectAltName value, for another nodes certificate. Alternately you can use the --dns_alt_names command line option to set the labels added while generating your own CSR.

Você pode gerar um certificado SSL para o seu servidor usando subjectAlternativeName assim:

$ puppet cert generate <puppet master's certname> --dns_alt_names=<comma-separated list of DNS names>
    
por 23.12.2011 / 22:19
2

Para o Puppet 4+, use os seguintes comandos para alterar os nomes de DNS aceitos para o certificado do puppetserver:

Renomeie os certificados existentes para * .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}

gere um novo certificado (adicione seus nomes alternativos desejados):

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

reinicie o servidor puppets para usar novos certificados

service puppetserver restart
    
por 29.07.2017 / 00:58
1
  • Em primeiro lugar, certdnsnames é uma lista separada por dois pontos.
  • Em segundo lugar, esse erro ocorre porque o agente está entrando em contato com o mestre usando um nome de host que não foi incluído quando o certificado foi assinado: link
por 10.10.2011 / 05:35
0

De acordo com

puppet agent --genconfig

você deve usar uma lista separada por dois-pontos (":" não ";").

Então deve ser

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

HTH

    
por 10.10.2011 / 16:03