कठपुतली एजेंट प्रमाणपत्र विफलता को सत्यापित करता है


10

मेरे पास एक कठपुतली मास्टर / एजेंट स्थापित है, और मास्टर पर एजेंट के लिए प्रमाण पत्र पर सफलतापूर्वक हस्ताक्षर किए हैं। हालाँकि, जब मैं दौड़ता 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निर्देशिका में सब कुछ हटा दिया है और इस्तीफा दे दिया है, मुझे नहीं पता कि क्या करना है।


आपका मास्टर आपके ग्राहक ट्रस्टों की तुलना में एक अलग प्रमाण पत्र का उपयोग कर रहा है? क्या मास्टर का प्रमाणपत्र बदल गया है?
शेन मैडेन

@ शेननडेन मुझे ऐसा नहीं लगता ... क्या मुझे मास्टर्स और क्लाइंट सर्टिफिकेट को साफ और निरस्त कर देना चाहिए? मैंने मास्टर्स सर्टिफिकेट के साथ कोई खिलवाड़ नहीं किया है, लेकिन यहां "कठपुतली प्रमाणित सूची --all" का आउटपुट कैसा दिखता है: + "मास्टरहोस्ट.डोमेन.कॉम" (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.comभी वही है hostname.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 ऐसा लगता है कि कुछ एमिस है .... जब मैंने "-शोअर्स" कमांड चलाया, तो इसने मुझे दो "स्टार्ट" और "एंड" सर्टिफिकेट दिए, इसलिए मैंने पहली बार उन में से एक को एक नई फाइल में जोड़ने की कोशिश की, और मिल गया यह: / var / lib / कठपुतली / ssl / ca / ​​परीक्षण: /CN=masterhost.domain.com त्रुटि 7 में 0 गहराई से देखने पर: प्रमाणपत्र हस्ताक्षर विफलता 22297: त्रुटि: 0407006A: rsa दिनचर्या: RS__pding_check_PKCS1_type_1: ब्लॉक प्रकार 01 नहीं है: rsa_pk1.c: 100: 22,297: त्रुटि: 04,067,072: आरएसए दिनचर्या: RSA_EAY_PUBLIC_DECRYPT: गद्दी जांच में विफल: rsa_eay.c: 697: 22,297: त्रुटि: 0D0C5006: asn1 एन्कोडिंग दिनचर्या: ASN1_item_verify: EVP lib: a_verify.c: 173:
जॉन स्मिथ

वह अजीब है। ऐसा लगता है कि यह संबंध में सर्वर प्रमाणपत्र के अलावा मूल प्रमाणपत्र भेज रहा है, तो हो सकता है बस से दूसरी प्रमाणपत्र की सामग्री की तुलना -showcertsकी सामग्री के साथ /var/lib/puppet/ssl/certs/ca.pem- वे समान होना चाहिए?
शेन मैडेन

जवाबों:


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

और जब वह प्रतीक्षा कर रहा है (यदि आपने ऑटोसाइन्ग को सक्षम नहीं किया है) तो गुरु सीएसआर को स्वीकार करता है, इसलिए एक नया ग्राहक प्रमाणपत्र वापस भेजा जाता है:

puppet cert sign agenthost.domain.com

यह एजेंट को कठपुतली सीए प्रमाण पत्र को फिर से डाउनलोड करना चाहिए, और अपने स्वयं के प्रमाण पत्र के लिए फिर से आवेदन करना चाहिए।

हमें इस प्रक्रिया का उपयोग अतीत में करना था जब हमने कठपुतली सर्वरों को बदल दिया और सीए सेर्ट्स बदल दिए, या जब हमने एक ही होस्टनाम के साथ एक मेजबान का पुनर्निर्माण किया।

सुनिश्चित करें कि आपका एजेंट अपने वास्तविक पूर्ण-योग्य होस्टनाम को जानता है; यह सुनिश्चित करने के लिए 'hostname' कमांड का उपयोग करें कि यह वही है जो आप इसे होने की उम्मीद करते हैं।


3
मास्टर पर, puppet cert clean ‘agentName’मेरे लिए काम करता है। RHEL कठपुतली उद्यम ssl स्थान /etc/puppetlabs/puppet/ssl:। और मैंने मास्टर और एजेंट के बीच के समय को सिंक किया है।
इवान चौ

कठपुतली एंटरप्राइज, और नए कठपुतली 4, नीचे वर्णित के रूप में / आदि / कठपुतली / कठपुतली / एसएसएल के तहत उनके सीरियलों को स्टोर करते हैं। / Var / lib / कठपुतली / ssl स्थान कठपुतली 2.x और 3.x समुदाय संस्करणों के लिए है।
स्टीव शिपवे

6

मुझे एक ऐसी ही समस्या है। मैंने एक कठपुतली और कई ग्राहकों के साथ एक योनि वातावरण स्थापित किया है। समस्या तब होती है जब मैं कठपुतली को नष्ट करता हूं और बनाता हूं, ग्राहक नए कठपुतली का पता लगाने वाले के रूप में पता लगाते हैं।

/etc/puppet/sslक्लाइंट पर हटाने से समस्या हल हो जाती है।

याद रखें कि आपका ssl कॉन्फ़िगरेशन कैश्ड हो जाएगा, इसलिए कठपुतली मास्टर के पुनरारंभ की आवश्यकता होती है, यदि आप /etc/puppet/sslउस होस्ट पर अपना डिलीट करने का निर्णय लेते हैं :

sudo /etc/init.d/puppetmaster restart

service puppetserver restartयह मेरे लिए तय किया
spuder
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.