꼭두각시 에이전트 인증서 확인 실패


10

Puppet Master / Agent가 설정되어 있고 마스터의 에이전트에 대한 인증서에 성공적으로 서명했습니다. 그러나 실행할 때 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디렉토리의 모든 것을 삭제 하고 사임했습니다. 다른 조치를 모릅니다.


마스터가 클라이언트가 신뢰하는 것과 다른 인증서를 사용하고있는 것 같습니다. 마스터의 인증서가 변경 되었습니까?
Shane Madden

@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 ..
John Smith

그리고 그것은 당신의 질문에서 masterhost.domain.com와 동일 hostname.domain.com합니다. 이것을 시도해 봅시다. 우리는 인증서가 수동으로 확인되는지 볼 것입니다; run을 실행 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하여 확인하십시오.
Shane Madden

@ShaneMadden "-showcerts"명령을 실행할 때 두 개의 "시작"및 "종료"인증서를 제공하므로 먼저 새 파일에 해당 인증서 중 하나를 추가해 보았습니다. this : / var / lib / puppet / ssl / ca / ​​test : /CN=masterhost.domain.com 0 심도 조회에서 오류 7 : 인증서 서명 실패 22297 : error : 0407006A : rsa 루틴 : RSA_padding_check_PKCS1_type_1 : 블록 유형이 01이 아님 : rsa_pk1.c : 100 : 22297 : 오류 : 04067072 : RSA 루틴 : RSA_EAY_PUBLIC_DECRYPT : 패딩 체크 실패 : rsa_eay.c : 697 : 22297 : 오류 : 0D0C5006 : ASN1 인코딩 루틴 : ASN1_item_verify : EVP lib 디렉토리 : a_verify.c : 173 :
존 Smith

이상하다. 그것은 어쩌면 단지에서 두 번째 인증서의 내용을 비교, 연결에서 서버 인증서 외에 루트 인증서를 보내는 것처럼 그것은 소리 -showcerts의 내용으로 /var/lib/puppet/ssl/certs/ca.pem- 그들이 동일해야?
Shane Madden

답변:


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

Puppet Enterprise 및 최신 Puppet 4는 위에서 언급 한대로 인증서를 / etc / puppetlabs / puppet / ssl에 저장합니다. / var / lib / puppet / ssl 위치는 Puppet 2.x 및 3.x 커뮤니티 에디션입니다.
Steve Shipway

6

비슷한 문제가 있습니다. 하나의 puppetmaster와 여러 클라이언트로 방랑 환경을 설정했습니다. 문제는 내가 puppetmaster를 파괴하고 만들 때 클라이언트가 새로운 puppetmaster를 사기꾼으로 감지한다는 것입니다.

/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.