Modifica del certificato SSL di un Puppet Master

From RVM Wiki
Revision as of 15:18, 10 July 2014 by Gabriele.vivinetto (talk | contribs) (Created page with "Se si configura un Master puppet in lan, il certificato SSL verrà generato con l'fqdn del dominio locale, ad esempio myserver.mylan.example.com Se, ad esempio, poi si vuole...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Se si configura un Master puppet in lan, il certificato SSL verrà generato con l'fqdn del dominio locale, ad esempio myserver.mylan.example.com

Se, ad esempio, poi si vuole esporre questo Master su internet, e renderlo raggiungibile tramite un IP Pubblico, cin un nome DNS ad esempio mypublic.example.com, se si tenta di accedervi, si otterrà un errore del tipo:

hostname was not match with the server certificate
  • Verificare sul master che nomi DNS alterntivi contiene il certificato attuale:
sudo openssl x509 -text -in /var/lib/puppet/ssl/certs/$(hostname -f).pem | grep DNS
               DNS:puppet, DNS:puppet.mylan.example.com, DNS:myserver.mylan.example.com
  • È Possibile rigenerare questo certificato senza dover rigenerare nulal per i client, includendo il nuovo nome DNS mypublic.example.com.
  • Sul master, trovare il nome del vecchio certificato:
sudo puppet master --configprint certname
myserver.mylan.example.com
  • Verificare la directory dove è memorizzato il certificato:
puppet master --configprint ssldir
/var/lib/puppet/ssl
  • Rimuovere il vecchio certificato:
  sudo find $(puppet master --configprint ssldir) -name "$(puppet master --configprint certname).pem" -delete

  • Generare il nuovo:
sudo  puppet cert generate \
  myserver.mylan.example.com \
  --dns_alt_names= \
  puppet,\
  puppet.mylan.example.com,\
  puppet.example.com,\
  mypublic.example.com
  • Verificarlo:
sudo openssl x509 -text -in /var/lib/puppet/ssl/certs/$(hostname -f).pem | grep DNS
               DNS:puppet, DNS:puppet.mylan.example.com, DNS:myserver.mylan.example.com, DNS:puppet.example.com, DNS:mypublic.example.com, 
  • Riavviare il Master:
 sudo invoke-rc.d puppetmaster restart
  • ATTENZIONE: se il puppetmaster gira sotto passenger (ad esempio è un'istanza Foreman), è necessrio riavviare APACHE, datoc he utlizza il certificato che abbiamo appena modificato:
sudo invoke-rc.d apache2 restart
  • Controllare ora che ci si possa connettere:
sudo puppet agent --test --server=mypublic.example.com

Riferimenti