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


13

私は手動で(puppet caコマンドの代わりにopensslを使用して)Puppetで使用できるCAを作成する方法を疑問に思っていますか?目的は、puppet certコマンドを使用して証明書を作成するのではなく、複数のpuppetmasterに展開するために、そのようなCAの作成をスクリプト化することです。

方法についてのアイデアはありますか?私はそのようなものを見つけることができました: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


ありがたいことに、残念ながら、それは可能性を示しているだけで、方法は示していません。それに加えて、それは非常に古いバージョンのPuppetを指します。
SpankMe

@SpankMeなぜ単に使用しないのpuppet cert generateですか?
シェーンマッデン

3
@Shane Popenオブジェクトを使用してシステムコマンドをスクリプトでラップする必要があるため、テキスト解析によって出力を検証する必要があります... opensslライブラリを使用するよりも柔軟性が低く、「コーシャ」であり、それに加えてサーバーへのpuppetのインストールが必要です、インストールすべきではない場所-そこに人形のCAとクライアント証明書を事前生成し、適切なマシンに配布したいだけです。
SpankMe

回答:


1

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

にあるファイルを確認してください

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

事前に生成してマスターに配置したものと同じです。(マスターは、エージェントの秘密鍵のコピーを受け取るべきではありません。)


-1

証明書を生成するスクリプトが必要になる理由がわかりませんか?puppetが証明書を生成すると、クライアント(エージェント)がいる限り有効です。クライアントを削除して、同じホスト名で新しいクライアントマシンを作成しない限り。puppetを実行すると、秘密キーの不一致があると文句を言うでしょう。代わりにpuppet cert clean test、puppetmaster を使用して、クライアントが不要な場合(OSを再インストールする場合や仮想マシンを再作成する場合など)に、puppetサーバーの証明書を消去する必要があります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.