Modifica del certificato SSL di un Puppet Master

From RVM Wiki
Revision as of 15:38, 15 January 2020 by Gabriele.vivinetto (talk | contribs)
(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:
openssl x509 -text -in $(puppet master --configprint ssldir)/$(hostname -f).pem | grep DNS
               DNS:puppet, DNS:puppet.mylan.example.com, DNS:myserver.mylan.example.com
  • È Possibile rigenerare questo certificato senza dover rigenerare nulla 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
/etc/puppetlabs/puppet/ssl
  • Rimuovere il vecchio certificato:
puppet cert clean "$(puppet master --configprint certname).pem"
Oppure:
  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 $(puppet master --configprint ssldir)/$(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), è necessario riavviare APACHE, dato che 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