web-dev-qa-db-ja.com

Puppetエージェントの証明書検証失敗

Puppetマスター/エージェントをセットアップし、マスター上のエージェントの証明書に正常に署名しました。ただし、puppet agent --testを実行すると、次のようなエラーが発生します。

Warning: Unable to fetch my node definition, but the agent run will continue:  
Warning: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Info: Retrieving plugin  
Error: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Error: /File[/var/lib/puppet/lib]: Could not evaluate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com] Could not retrieve file metadata for puppet://hostname.domain.com/plugins: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Error: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  
Warning: Not using cache on failed catalog   
Error: Could not retrieve catalog; skipping run  
Error: Could not send report: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [certificate signature failure for /CN=hostname.domain.com]  

hostname.domain.comはマスターです

どうすれば修正できますか?両方のクロックが同じタイムゾーンの正しい時刻にあることを確認しました。エージェント/var/lib/puppet/sslディレクトリのすべてを削除して辞任しました。他に何をすべきかわかりません。

10
John Smith

クライアント証明書のセットアップ全体を再作成します。これにより、過去に経験した証明書の問題は常に修正されました。次の手順では、エージェントのホスト名がagenthost.hostname.comであると想定しています

クライアントで、CAを含むすべての保存された証明書を削除します。

find /var/lib/puppet/ssl -name '*.pem' -delete

マスターで、このクライアントの保留中のCSRまたは古いクライアント証明書を削除します。

find /var/lib/puppet/ssl -name agenthost.domain.com.pem -delete

次に、クライアントでマスターに再接続してCSRを送信します。

puppet agent -t --waitforcert=60

そして、それが待機しているとき(自動署名を有効に設定していない場合)、マスターでCSRを承認して、新しいクライアント証明書を送り返します。

puppet cert sign agenthost.domain.com

これにより、エージェントはパペットCA証明書を再ダウンロードし、独自の証明書を再適用する必要があります。

過去にパペットサーバーを変更してCA証明書を変更したとき、または同じホスト名でホストを再構築したときに、この手順を使用する必要がありました。

エージェントが実際の完全修飾ホスト名を知っていることを確認してください。 「hostname」コマンドを使用して、期待どおりであることを確認します。

13
Steve Shipway

同様の問題があります。私は1人の操り人形マスターと複数のクライアントで迷惑な環境をセットアップしました。問題は、私がパペットマスターを破棄して作成すると、クライアントが新しいパペットマスターを詐称者として検出することです。

クライアントで/etc/puppet/sslを削除すると、問題が解決します。

そのホストの/etc/puppet/sslも削除する場合は、ssl構成がキャッシュされるため、puppet masterの再起動が必要であることを覚えておいてください。

Sudo /etc/init.d/puppetmaster restart
6
adrianlzt