web-dev-qa-db-ja.com

puppetmasterに複数の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を正しく定義する方法これについて別のドキュメントを見つけましたが、簡単な例はありません。 "、"を使用して分離することはできません。私はまた、次のような構文を見ました

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

しかし、私にとっては、「パペット:」をいつ追加するか、いつ追加しないかは明確ではありません。

16
c33s

この答えに出くわした誰かのために:

CVE-2011-3872 のため、Puppetはcertdnsnamesオプションをサポートしなくなりました。ドキュメントから:

CVE-2011-3872以降、certdnsnames設定は機能しなくなりました。値を完全に無視します。独自の証明書要求の場合、構成でdns_alt_namesを設定でき、ローカルに適用されます。別のノードの証明書にDNS alt名または他のsubjectAltName値を設定する構成オプションはありません。または、-dns_alt_namesコマンドラインオプションを使用して、独自のCSRの生成中に追加するラベルを設定できます。

次のように、subjectAlternativeNameを使用してサーバーのSSL証明書を生成できます。

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

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}

新しい証明書を生成します(目的の代替名を追加します):

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

新しい証明書を使用するためにpuppetserverを再起動します

service puppetserver restart
2
phiphi
  • まず、certdnsnamesはコロンで区切られたリストです。
  • 次に、証明書が署名されたときに含まれていないホスト名を使用してエージェントがマスターに連絡しているため、このエラーが発生します: http://docs.puppetlabs.com/guides/troubleshooting.html
1
quanta

SANエントリをPuppetサーバー証明書に追加するには、次のコマンドを使用します。

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

rm -rf $(puppet master --configprint ssldir)を使用して既存の証明書をクリアする必要がある場合もあります

0
Greg Bray

による

puppet agent --genconfig

コロンで区切られた( ";"ではなく ":")リストを使用する必要があります。

だからそれは

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

HTH

0
cyberkov