मेरे कठपुतली नाम के लिए कई डीएनएस नाम कैसे जोड़ें?


16

गुरु पर मेरी कठपुतली

[master]
certname = myname.mydomain.com
ca_server = myname.mydomain.com
certdnsnames = puppet;puppet.local;myname.dyndns.org;hivemind.local;

certdnsnames द्वारा परिभाषित मेरी समझ के लिए निम्नलिखित काम करना चाहिए:

puppet agent --server myname.dyndns.org --test

लेकिन मुझे निम्नलिखित त्रुटि मिलती है:

err: Could not retrieve catalog from remote server: hostname was not match with the server certificate

इस त्रुटि से कैसे बचें? कैसे certdnsnames को सही ढंग से परिभाषित करने के लिए? मुझे इस बारे में अलग-अलग दस्तावेज़ मिले हैं, लेकिन कोई सरल उदाहरण नहीं है। ii उपयोग "," अलगाव के लिए मैं बिल्कुल भी हस्ताक्षर नहीं कर सकता। मैं भी एक वाक्यविन्यास की तरह देखा है

certdnsnames = puppet:puppet.intra.myserver.fr,puppet.myserver.fr:puppet,puppet:puppet,puppet.intra.myserver.fr,puppet.myserver.fr

http://projects.puppetlabs.com/issues/5776

लेकिन मेरे लिए यह स्पष्ट नहीं है कि कब "कठपुतली:" जोड़ना है और कब नहीं।

जवाबों:


25

किसी और के लाभ के लिए जो इस जवाब पर ठोकर खाता है:

CVE-2011-3872 के कारण , कठपुतली अब certdnsnamesविकल्प का समर्थन नहीं करता है । प्रलेखन से:

CVE-2011-3872 के बाद certdnsnames सेटिंग अब कार्यात्मक नहीं है। हम मूल्य को पूरी तरह से अनदेखा करते हैं। अपने स्वयं के प्रमाणपत्र अनुरोध के लिए आप कॉन्फ़िगरेशन में dns_alt_names सेट कर सकते हैं और यह स्थानीय रूप से लागू होगा। DNS नोड नाम, या किसी अन्य विषय के लिए कोई अन्य नोड सेट प्रमाणपत्र के लिए कोई कॉन्फ़िगरेशन विकल्प सेट करने के लिए कोई कॉन्फ़िगरेशन विकल्प नहीं है। वैकल्पिक रूप से आप अपना स्वयं का CSR बनाते समय जोड़े गए लेबल को सेट करने के लिए --dns_alt_names कमांड लाइन विकल्प का उपयोग कर सकते हैं।

आप इस तरह से subjectAlternativeName का उपयोग करके अपने सर्वर के लिए एक एसएसएल प्रमाणपत्र बना सकते हैं:

$ puppet cert generate <puppet master's certname> --dns_alt_names=<comma-separated list of DNS names>

3
अतिरिक्त नोट: कठपुतली प्रमाणित जनरेट करने से पहले, कठपुतली मास्टर के लिए .pem / var / lib / कठपुतली / ssl / private_keys, / var / lib / कठपुतली / ssl / ca / ​​हस्ताक्षर / / var / lib / कठपुतली के लिए .pem फ़ाइलों को निकालें / ssl / प्रमाणपत्र। नया प्रमाणपत्र बनाना मौजूदा ग्राहकों के लिए कनेक्टिविटी को नहीं मार रहा है, क्योंकि वे सीए के प्रमाण पत्र का उपयोग करके कठपुतली के प्रमाण पत्र का सत्यापन करते हैं, जिसे उन्होंने पहले कनेक्ट पर डाउनलोड किया था।
एरिक फोर्सबर्ग

9
अरे, अतीत से धन्यवाद लार्स। तुमने सिर्फ मेरे सवाल का जवाब दिया।
लार्क्स

2

कठपुतली प्रमाण पत्र के लिए स्वीकार किए गए डीएनएस नामों को बदलने के लिए कठपुतली 4+ के लिए निम्न आदेशों का उपयोग करें:

मौजूदा प्रमाणपत्रों को * .backup में बदलें:

mv /etc/puppetlabs/puppet/ssl/private_keys/$(hostname -f).pem{,.backup}
mv /etc/puppetlabs/puppet/ssl/ca/signed/$(hostname -f).pem{,.backup}
mv /etc/puppetlabs/puppet/ssl/certs/$(hostname -f).pem{,.backup}

नया प्रमाणपत्र बनाएं (अपने इच्छित नामों को जोड़ें):

puppet cert generate $(hostname -f) --dns_alt_names=$(hostname -f),puppet

नए प्रमाणपत्रों का उपयोग करने के लिए कठपुतली को पुनः आरंभ करें

service puppetserver restart

1
  • सबसे पहले, certdnsnamesएक बृहदान्त्र-पृथक सूची है।
  • दूसरे, यह त्रुटि तब आती है क्योंकि एजेंट एक होस्टनाम का उपयोग करते हुए मास्टर से संपर्क कर रहा है, जो उस समय शामिल नहीं था जब प्रमाणपत्र पर हस्ताक्षर किए गए थे: http://docs.puppetlabs.com/guides/troublesourcing.html

इस उत्तर को स्वीकार न करने के लिए खेद है, मुझे "बृहदान्त्र" के साथ एक अनुवाद समस्या थी, इसलिए दूसरे उत्तर ने मुझे केवल सही चार दिखाने में मदद की :) लेकिन आपके उत्तर के लिए धन्यवाद
c33s

0

इसके अनुसार

puppet agent --genconfig

आपको एक बृहदान्त्र-पृथक (":" नहीं ";") सूची का उपयोग करना चाहिए।

तो यह होना चाहिए

certdnsnames = 'puppet:puppet.local:myname.dyndns.org:hivemind.local'

HTH


0

कठपुतली सर्वर प्रमाणित उपयोग के लिए एक SAN प्रविष्टि जोड़ने के लिए:

systemctl stop puppetserver
puppetserver ca setup --subject-alt-names $(hostname -f),puppet
systemctl start puppetserver

के rm -rf $(puppet master --configprint ssldir)रूप में अच्छी तरह से मौजूदा अनाज को साफ करने की आवश्यकता हो सकती है

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