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

@Swiss 더 이상 사용되지 않는 문서에 대한 링크가 있습니까?
Nick

1
puppet cert clean이제 요청을 제거하기 위해 작동합니다. 연결된 버그 보고서를 참조하십시오.
7yl4r

3

가능한 해결책 1 :

puppet cert clean퍼펫 마스터에서를 사용하는 것이 올바른 방법입니다. 그러나 오류가 발생하여 인증서 인벤토리가 잘못되었을 수 있습니다.

재 재고를 한 다음 깨끗하게 해보십시오.

$ puppet cert reinventory
$ puppet cert clean --all

참고 :이 예제에서는 --all플래그 를 사용하므로 서명 및 서명되지 않은 모든 인증서가 지워집니다. 또한을 실행하기 전에 꼭두각시 마스터를 중지해야합니다 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

둘째 : 클라이언트

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

셋째 : 서버에서 (필요에 따라 조정)

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

또한 클라이언트가 [puppetmaster 도메인 이름]에 도달 할 수 있는지 다시 확인하십시오.

출처 : /server/574976/puppet-trying-to-configure-puppet-client-for-first-use-but-got-some-problems-wi


감사합니다, 내가 노력 reinventory하고 clean wrong.host.name내가 너무 좋은 인증서에서 취소 싶지 않기 때문에,하지만, 난 여전히 일련 번호 오류가 발생합니다.
Louis

에 좋은 캐치 --all. 방금 업데이트 할 가치가있는 업데이트를 추가했습니다.
tbenz9

작품 을 puppet cert sign wrong.host.name사용한 후에 clean는 좋습니다. 그래도 먼저 서명해야한다는 것이 잘못된 것 같습니다.
Louis

1
또한 인증서를 정리 한 후 꼭두각시 마스터 서비스를 다시 시작해야합니다.
Robert Fey

1
참고로, 다른 대답은 이것보다 훨씬 낫습니다. OPs 조언을 따르는 경우 작동하지 않는 명령 (예 : 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.