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
ディレクトリのすべてを削除して辞任しました。他に何をすべきかわかりません。
クライアント証明書のセットアップ全体を再作成します。これにより、過去に経験した証明書の問題は常に修正されました。次の手順では、エージェントのホスト名が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」コマンドを使用して、期待どおりであることを確認します。
同様の問題があります。私は1人の操り人形マスターと複数のクライアントで迷惑な環境をセットアップしました。問題は、私がパペットマスターを破棄して作成すると、クライアントが新しいパペットマスターを詐称者として検出することです。
クライアントで/etc/puppet/ssl
を削除すると、問題が解決します。
そのホストの/etc/puppet/ssl
も削除する場合は、ssl構成がキャッシュされるため、puppet masterの再起動が必要であることを覚えておいてください。
Sudo /etc/init.d/puppetmaster restart