কীভাবে আমার কুকুরছানাতে একাধিক ডিএনএস নাম যুক্ত করবেন?


16

মাস্টার উপর আমার পুতুল। কনফ

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

আমার বোঝাপড়ার জন্য নির্ধারিত সার্টিডনেসগুলির সাথে নিম্নলিখিতটি কাজ করা উচিত:

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

তবে আমি নিম্নলিখিত ত্রুটি পেয়েছি:

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

কিভাবে এই ত্রুটি এড়ানো যায়? কিভাবে সঠিকভাবে সার্টিডনেস সংজ্ঞা দিতে? আমি এ সম্পর্কে স্বতন্ত্র ডকুমেন্টেশন পেয়েছি, তবে এর সহজ উদাহরণ নেই। 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বিকল্পটি সমর্থন করে না । ডকুমেন্টেশন থেকে:

সিডিই -2011-3872 এর পরে শংসাপত্রের নামগুলি সেটিংটি আর কার্যকরী নয়। আমরা মানটিকে সম্পূর্ণ উপেক্ষা করি। আপনার নিজস্ব শংসাপত্রের অনুরোধের জন্য আপনি কনফিগারেশনে dns_alt_name সেট করতে পারেন এবং এটি স্থানীয়ভাবে প্রযোজ্য হবে। অন্য নোডের শংসাপত্রের জন্য ডিএনএস এলটি নাম, বা অন্য কোনও সাবজেক্টআল্টনেম মান সেট করার জন্য কোনও কনফিগারেশন বিকল্প নেই। পর্যায়ক্রমে আপনি নিজের নিজস্ব সিএসআর তৈরি করার সময় যুক্ত লেবেলগুলি সেট করতে --dns_alt_names কমান্ড লাইন বিকল্পটি ব্যবহার করতে পারেন।

আপনি এই জাতীয় বিষয় বিকল্প বিকল্প ব্যবহার করে আপনার সার্ভারের জন্য একটি এসএসএল শংসাপত্র তৈরি করতে পারেন:

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

3
অতিরিক্ত দ্রষ্টব্য: পুতুল শংসাপত্র তৈরি করার আগে, পুতুল মাস্টারের জন্য। / SSL / শংশাপত্র। একটি নতুন শংসাপত্র তৈরি করা বিদ্যমান ক্লায়েন্টদের সাথে সংযোগ হারাচ্ছে না, কারণ তারা সিএর শংসাপত্র ব্যবহার করে পুতুলের মাস্টারের শংসাপত্র যাচাই করে, যা তারা প্রথম সংযোগে ডাউনলোড করেছিল।
এরিক ফোর্সবার্গ

9
আরে, অতীতে থেকে লার্সকে ধন্যবাদ। আপনি শুধু আমার প্রশ্নের উত্তর.

2

পুতুল 4+ এর জন্য পুতুল সার্ভার শংসাপত্রের জন্য গৃহীত ডিএনএস নামগুলি পরিবর্তন করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:

বিদ্যমান সার্টিফিকেটগুলিকে * .ব্যাকআপে নামকরণ করুন:

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}

নতুন শংসাপত্র তৈরি করুন (আপনার পছন্দসই Alt নাম যুক্ত করুন):

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

নতুন শংসাপত্রগুলি ব্যবহার করার জন্য পুতুলের সার্ভার পুনরায় চালু করুন

service puppetserver restart

1
  • প্রথমত, certdnsnamesএকটি কোলন-বিচ্ছিন্ন তালিকা।
  • দ্বিতীয়ত, এই ত্রুটিটি এলো কারণ এজেন্ট শংসাপত্র স্বাক্ষরিত হওয়ার সময় অন্তর্ভুক্ত ছিল না এমন একটি হোস্টনাম ব্যবহার করে মাস্টারের সাথে যোগাযোগ করছে: http://docs.puppetlabs.com/guides/troubleshooting.html

এই উত্তরটি গ্রহণ না করার জন্য দুঃখিত, আমার "কোলন" এর সাথে অনুবাদ করার সমস্যা ছিল তাই অন্য উত্তরটি আমাকে কেবল সঠিক
চরটি

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)পাশাপাশি বিদ্যমান শংসাপত্রগুলি সাফ করার প্রয়োজন হতে পারে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.