如何添加多个DNS名称到我的木偶大师?

我的puppet.conf上的主人

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

我的理解与certdnsnames定义如下应该工作:

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

但我得到以下错误:

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

如何避免这个错误? 如何正确定义certdnsnames? 我发现有关这个不同的文档,但没有一个简单的例子。 ii使用“,”分开我不能签字。 我也看过类似的语法

 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

但是对于我来说,还不清楚何时添加“傀儡”,何时不能。

为了这个答案的其他人的利益:

由于CVE-2011-3872 ,Puppet不再支持certdnsnames选项。 从文档:

在CVE-2011-3872之后,certdnsnames设置不再起作用。 我们完全忽略了这个价值。 对于您自己的证书请求,您可以在configuration中设置dns_alt_names,它将在本地应用。 没有configuration选项为其他节点证书设置DNS替代名称或任何其他subjectAltName值。 或者,您可以使用–dns_alt_names命令行选项来设置在生成自己的CSR时添加的标签。

您可以使用如下所示的subjectAlternativeName为您的服务器生成SSL证书:

 $ puppet cert generate <puppet master's certname> --dns_alt_names=<comma-separated list of DNS names> 
  • 首先, certdnsnames是一个以冒号分隔的列表。
  • 其次,出现此错误是因为代理正在使用主机名联系主机,而主机名在签名证书时未包括在内: http : //docs.puppetlabs.com/guides/troubleshooting.html

对于Puppet 4+,使用以下命令来更改puppetserver证书的接受DNS名称:

将现有证书重命名为* .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} 

生成新的证书(添加你想要的ALT名称):

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

重启puppetserver来使用新的证书

 service puppetserver restart 

根据

 puppet agent --genconfig 

您必须使用冒号分隔(“:”不是“;”)列表。

所以应该是

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

HTH