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


16

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 meu entendimento com os certdnsnames definidos, o seguinte deve funcionar:

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

mas eu 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 diferente sobre isso, mas não é um exemplo simples. ii use "," para separação que não consigo assinar. 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

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

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

Respostas:


25

Para o benefício de quem mais se deparar com esta resposta:

Devido ao CVE-2011-3872 , o Puppet não suporta mais a certdnsnamesopção. A partir da documentação:

A configuração certdnsnames não está mais funcional, após o CVE-2011-3872. Nós ignoramos o valor completamente. Para sua própria solicitação de certificado, você pode definir dns_alt_names na configuração e ela será aplicada localmente. Não há opção de configuração para definir nomes alternativos do DNS ou qualquer outro valor subjectAltName, para outro certificado de nós. Como alternativa, você pode usar a opção de linha de comando --dns_alt_names para definir os rótulos adicionados ao gerar seu próprio CSR.

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

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

3
Nota adicional: Antes de executar o puppet cert generate, remova os arquivos .pem para o mestre de fantoches em / var / lib / puppet / ssl / private_keys, / var / lib / puppet / ssl / ca / ​​assinado / e / var / lib / puppet / ssl / certs. Gerar um novo certificado não está prejudicando a conectividade com os clientes existentes, pois eles verificam o certificado do puppetmaster usando o certificado da CA, que eles baixaram na primeira conexão.
Erik Forsberg

9
Ei, obrigado Lars do passado. Você só respondeu à minha pergunta.
Larsks

2

Para o Puppet 4+, use os seguintes comandos para alterar os nomes de DNS aceitos para o certificado 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 os nomes alternativos desejados):

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

reinicie o puppetserver para usar novos certificados

service puppetserver restart

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: http://docs.puppetlabs.com/guides/trou Troubleshooting.html

desculpe por não aceitar esta resposta, eu tinha um problema de tradução com "dois pontos" para a outra resposta me ajudou a sair, simplesmente me mostrando o caractere direito :) mas obrigado pela sua resposta
c33s

0

De acordo com

puppet agent --genconfig

você deve usar uma lista separada por dois pontos (":" not ";").

Então deveria ser

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

HTH


0

Para adicionar uma entrada SAN ao certificado do servidor fantoche, use:

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

pode precisar limpar certificados existentes via rm -rf $(puppet master --configprint ssldir)bem

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.