Puppet Masterで証明書リクエストを拒否するには?


13

ホスト名が正しくないエージェントからのリクエストがあります。これを修正しましたが、まだホスト名が間違っている未解決のリクエストがあります。

私は試した:

$puppet cert list
  "wrong.host.name" (SHA256) 8E:...:51

$ puppet cert revoke wrong.host.name
Error: Could not find a serial number for wrong.host.name

$ puppet cert clean wrong.host.name
Error: Could not find a serial number for wrong.host.name

それらを取り除く適切な方法は何ですか?

回答:


23

を使用caするとうまく機能し、とは異なり、単一の手順で証明書を削除できcertます。重要なのは、無効な証明書に一時的に署名することではありません。

$ puppet ca destroy wrong.host.name
Notice: Removing file Puppet::SSL::CertificateRequest wrong.host.name at '/var/lib/puppet/ssl/ca/requests/wrong.host.name.pem'
Deleted for wrong.host.name: Puppet::SSL::CertificateRequest

このpuppet caコマンドは最近廃止されたため、ある時点でなくなる可能性がありますが、同等のコマンドはありません。あるバグあなたはそれが無交換で、このコマンドを削除するには少し愚かだと思うならば、あなたがのために投票でき提出は、。


これは正しい答えです。受け入れられた回答によって与えられたすべての指示が機能しないか、悪いとわかっている証明書に署名する必要があります。
-tedivm

@tedivmが言ったこと。したがって:+1。
gf_

これは機能しますが、非推奨としてマークされました。誰もが新しい方法が何であるか知っていますか?
スイスの

@Swiss廃止されたことを示すいくつかのドキュメントへのリンクがありますか?
ニック

1
puppet cert cleanリクエストを削除するようになりました。リンクされたバグレポートをご覧ください。
7yl4r

3

可能な解決策1:

puppet cert cleanパペットマスターでを使用するのが適切な方法です。ただし、エラーが発生しているため、証明書のインベントリが不適切である可能性があります。

再インベントリを実行してから、クリーンを実行してください。

$ puppet cert reinventory
$ puppet cert clean --all

注:私の例では--allフラグを使用しています。これにより、署名済みおよび未署名のすべての証明書がクリアされます。また、を実行する前にPuppetマスターを停止する必要があることに注意してくださいreinventory

ソース:http : //docs.puppetlabs.com/references/3.6.2/man/cert.html

可能な解決策2:

$ puppet cert sign wrong.host.name
Notice: Signed certificate request for wrong.host.name
Notice: Removing file Puppet::SSL::CertificateRequest wrong.host.name at '/var/lib/puppet/ssl/ca/requests/wrong.host.name.pem'

$ puppet cert clean wrong.host.name
Notice: Revoked certificate with serial 87
Notice: Removing file Puppet::SSL::Certificate wrong.host.name at '/var/lib/puppet/ssl/ca/signed/wrong.host.name.pem'
Notice: Removing file Puppet::SSL::Certificate wrong.host.name at '/var/lib/puppet/ssl/certs/wrong.host.name.pem'

可能な解決策3:

最初:サーバー上

$ puppet cert --revoke wrong.host.name
$ puppet cert --clean wrong.host.name

2番目:クライアント上

$ rm -rf /usr/lib/puppet/ssl
$ puppet agent --server [puppetmaster domain name] --waitforcert 60

3番目:サーバー上(必要に応じて調整)

$ puppet cert --list (you should see your host)
$ puppet cert --sign wrong.host.name

また、クライアントが[puppetmasterドメイン名]に到達できることを再確認してください。

ソース:https : //serverfault.com/questions/574976/puppet-trying-to-configure-puppet-client-for-first-use-but-got-some-problems-wi


おかげで、私が試したreinventoryし、その後clean wrong.host.name、私はあまりにも良い本命を取り消すにしたくないので、私はまだシリアル番号のエラーを取得します。
ルイ14

の良いキャッチ--all。私はちょうど一見の価値があるアップデートを追加しました。
tbenz9 14

素晴らしい、作品をpuppet cert sign wrong.host.name使った後clean。最初に署名しなければならないのは間違っているようです。
ルイ14

1
また、証明書をクリーニングした後、Puppet Master Serviceを再起動することを忘れないでください。
ロバートフェイ

1
参考までに、他の答えはこれよりもはるかに優れています。OPのアドバイスに従うと、機能しないコマンド(cleanコマンドなど)を実行したり、不正であることがわかっている証明書に署名したりすることになります。以下のアドバイスに従い、単純に使用するpuppet ca destroy wrong.host.name場合、インフラストラクチャにセキュリティリスクを導入する必要はありません。
-tedivm

2

ここに私がやった方法があります

[root@puppetmc ca]# puppet cert clean sparrow.home
Error: Could not find a serial number for sparrow.home
[root@puppetmc ca]# cat inventory.txt 
0x0002 2015-05-17T06:33:29GMT 2020-05-16T06:33:29GMT /CN=puppetmc.home
0x0003 2015-05-17T23:25:33GMT 2020-05-16T23:25:33GMT /CN=sparrow.rospop.com
0x0004 2015-05-18T00:53:18GMT 2020-05-17T00:53:18GMT /CN=puppetmc.home
0x0005 2015-05-18T02:18:12GMT 2020-05-17T02:18:12GMT /CN=sparrow.rospop.com
[root@puppetmc ca]# vi  inventory.txt 

以下の行をinventory.txtに追加しました。

0x0001 2015-05-17T06:33:29GMT 2020-05-16T06:33:29GMT /CN=sparrow.home

その後、実行します

[root@puppetmc ca]# puppet cert clean sparrow.home
Notice: Revoked certificate with serial 1
Notice: Removing file Puppet::SSL::CertificateRequest sparrow.home at '/var/lib/puppet/ssl/ca/requests/sparrow.home.pem'
Vince Bhebhe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.