web-dev-qa-db-ja.com

Puppet CAと証明書を手動で作成する方法は?

手動で(puppet caコマンドの代わりにopensslを使用して)Puppetで使用できるCAを作成する方法を知りたいですか?目標は、証明書をpuppet certコマンドで作成する代わりに、そのようなCAをスクリプト作成して複数のpuppetmasterにデプロイすることです。

それを行う方法に関するアイデアはありますか?私はそのようなものしか見つけることができませんでした: https://wiki.mozilla.org/ReleaseEngineering/PuppetAgain/HowTo/Set_up_a_standalone_puppetmaster CAおよびクライアント証明書を作成してそれらを適用した後、機能しませんpuppetmaster、それは不満を言う:

Feb 16 09:35:20 test puppet-master[81728]: Could not prepare for execution: The certificate retrieved from the master does not match the agent's private key.
Feb 16 09:35:20 test puppet-master[81728]: Certificate fingerprint: 4F:08:AE:01:B9:14:AC:A4:EA:A7:92:D7:02:E9:34:39:1C:5F:0D:93:A0:85:1C:CF:68:E4:52:B8:25:D1:11:64
Feb 16 09:35:20 test puppet-master[81728]: To fix this, remove the certificate from both the master and the agent and then start a puppet run, which will automatically regenerate a certficate.
Feb 16 09:35:20 test puppet-master[81728]: On the master:
Feb 16 09:35:20 test puppet-master[81728]:   puppet cert clean test
Feb 16 09:35:20 test puppet-master[81728]: On the agent:
Feb 16 09:35:20 test puppet-master[81728]:   rm -f /var/puppet/ssl/certs/test.pem
Feb 16 09:35:20 test puppet-master[81728]:   puppet agent -t
13
SpankMe

エージェントは事前に生成されたクライアント証明書を使用していません。代わりに(新しいキーで)CSRを作成したため、マスターはエージェントを信頼しません。

にあるファイルが

`puppet agent --configprint ssldir`/{certs,private_keys}/`puppet agent --configprint certname`

事前に生成し、マスターに追加したものと同じです。 (マスターはnotエージェントの秘密鍵のコピーを受信する必要があります。)

1
Felix Frank