my puppet.conf on the master
[master]
certname = myname.mydomain.com
ca_server = myname.mydomain.com
certdnsnames = puppet;puppet.local;myname.dyndns.org;hivemind.local;
for my understanding with the certdnsnames defined the following should work:
puppet agent --server myname.dyndns.org --test
but i get the following error:
err: Could not retrieve catalog from remote server: hostname was not match with the server certificate
how to avoid this error? how to correctly define certdnsnames? i have found diffent documentation about this, but no simple example. i i use "," for seperation i cannot sign at all. i also have seen a syntax like
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
but for me its not clear when to add a "puppet:" and when not.
For the benefit of anyone else who stumbles upon this answer:
Due to CVE-2011-3872, Puppet no longer supports the
certdnsnames
option. From the documentation:You can generate an SSL certificate for your server using subjectAlternativeName like this:
For Puppet 4+ use the following commands to change the accepted dns names for the puppetserver certificate:
Rename existing certificates to *.backup:
generate new certificate (add your desired alt names):
restart puppetserver to use new certificates
certdnsnames
is a colon-separated list.According to
you must use a colon-separated (":" not ";") list.
So it should be
HTH
To add a SAN entry to the puppet server cert use:
may need to clear out existing certs via
rm -rf $(puppet master --configprint ssldir)
as wellI'm not sure about whether Greg Bray's answer works - but this one is ripped straight from the current documentation: