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


10

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ディレクトリ内のすべてを削除して辞任しました。他に何をすべきかわかりません。


あなたのマスターはあなたのクライアントが信頼するものとは異なる証明書を使用しているようですか?マスターの証明書は変更されましたか?
シェーンマッデン

@ShaneMadden私はそうは思いません...マスターとクライアントの証明書をクリーンアップして取り消す必要がありますか?私はマスター証明書にまったく手を加えていませんが、「puppet cert list --all」の出力は次のようになります。+ "masterhost.domain.com"(SHA1)E1:F7:6A:21:CB: CD:xx:xx:xx:xx ... + "agenthost.domain.com"(SHA256)5A:D9:7B:96:0B:FF:E4:87:58:AF:00:xx:xx:xx :xx ..
ジョンスミス

それmasterhost.domain.comhostname.domain.comあなたの質問と同じですよね?これを試してみましょう。証明書が手動で検証されるかどうかを確認します。を実行しopenssl s_client -connect masterhost.domain.com:8140 -showcerts、証明書データ(で始まり-----BEGIN CERTIFICATE-----、その行と証明書の最終行を含める)を新しいファイルにコピーしてからを実行しopenssl verify -CAfile /var/lib/puppet/ssl/certs/ca.pem /path/to/file/from/last/command、検証されるかどうかを確認します。
シェーンマッデン

@ShaneMadden何かがおかしいようです... "-showcerts"コマンドを実行すると、 "begin"と "end"の2つの証明書が表示されたので、最初にそれらの1つを新しいファイルに追加してみました。 this:/ var / lib / puppet / ssl / ca /​​ test:/CN=masterhost.domain.com error 7 at 0 depth lookup:certificate signature failure 22297:error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01: rsa_pk1.c:100:22297:error:04067072:rsaルーチン:RSA_EAY_PUBLIC_DECRYPT:パディングチェックが失敗しました:rsa_eay.c:697:22297:error:0D0C5006:asn1エンコーディングルーチン:ASN1_item_verify:EVP lib:a_verify.c:173:
Johnスミス

それは奇妙です。それはので、多分ちょうどから2番目証明書の内容を比較、接続中のサーバ証明書に加えて、ルート証明書を送信しているように聞こえる-showcertsの内容に/var/lib/puppet/ssl/certs/ca.pem-彼らは同一である必要がありますか?
シェーンマッデン2013年

回答:


13

クライアント証明書のセットアップ全体を再作成します。これにより、過去に経験した証明書の問題は常に修正されました。次の手順では、エージェントのホスト名が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」コマンドを使用して、期待どおりであることを確認します。


3
マスターでpuppet cert clean ‘agentName’は、私のために働きます。RHEL Puppet Enterprise sslの場所:/etc/puppetlabs/puppet/ssl。そして、マスターとエージェントの間で時間を同期しました。
Ivan Chau 2014年

Puppet Enterprise、および新しいPuppet 4は、上記のように、証明書を/ etc / puppetlabs / puppet / sslに保存します。/ var / lib / puppet / sslの場所は、Puppet 2.xおよび3.xコミュニティエディション用です。
Steve Shipway、2015

6

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

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

ssl設定はキャッシュされるため、そのホストでも削除する場合は、パペットマスターの再起動が必要であることを忘れないでください/etc/puppet/ssl

sudo /etc/init.d/puppetmaster restart

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