लेट्स एनक्रिप्ट डीएनएस-01 चैलेंज (या डीएनएस सत्यापन) कैसे काम करता है, इस पर विस्तृत विवरण के लिए, लेट्स एनक्रिप्ट डीएनएस-01 चैलेंज क्या है और एसएसएल प्रमाणपत्र प्राप्त करने के लिए इसका उपयोग कैसे करें नामक लेख पढ़ें।
इस लेख में, हम आपको दिखाएंगे कि Certbot और Certbot CloudFlare DNS प्लगइन का उपयोग करके अपने डोमेन नाम के लिए SSL प्रमाणपत्र प्राप्त करने के लिए Let’s Encrypt DNS सत्यापन का उपयोग कैसे करें।
सामग्री का विषय:
- CloudFlare DNS के साथ अपने डोमेन का प्रबंधन करना
- उबंटू/डेबियन पर सर्टबोट और सर्टबोट क्लाउडफ्लेयर प्लगइन इंस्टॉल करना
- फेडोरा पर सर्टबोट और सर्टबोट क्लाउडफ्लेयर प्लगइन इंस्टॉल करना
- RHEL/AlmaLinux/Rocky Linux/CentOS स्ट्रीम पर Certbot और Certbot CloudFlare प्लगइन इंस्टॉल करना
- यह जाँचना कि क्या Certbot और Certbot CloudFlare प्लगइन सही ढंग से स्थापित हैं
- CloudFlare API टोकन जनरेट करना
- क्लाउडफ्लेयर एपीआई टोकन को कंप्यूटर/सर्वर पर सुरक्षित रूप से संग्रहीत करना
- Certbot CloudFlare DNS सत्यापन का उपयोग करके SSL प्रमाणपत्र बनाना
- आइए Certbot का उपयोग करके SSL प्रमाणपत्रों को एन्क्रिप्ट करें की सूची बनाएं
- आइए Certbot का उपयोग करके SSL प्रमाणपत्रों को एन्क्रिप्ट करें
- निष्कर्ष
- संदर्भ
CloudFlare DNS के साथ अपने डोमेन का प्रबंधन करना
CloudFlare DNS सत्यापन का उपयोग करके Let’s Encrypt SSL प्रमाणपत्र प्राप्त करने के लिए, आपके पास एक CloudFlare खाता होना चाहिए और आपके डोमेन को CloudFlare DNS का उपयोग करना चाहिए। तुम कर सकते हो मुफ़्त में एक CloudFlare खाता बनाएँ और CloudFlare DNS सेवा भी उपयोग के लिए निःशुल्क है।
CloudFlare DNS के साथ अपने डोमेन को प्रबंधित करने के लिए, आप निम्न में से एक कार्य कर सकते हैं:
- CloudFlare से अपना डोमेन पंजीकृत करें
- अपने डोमेन को CloudFlare पर स्थानांतरित करें
- अपने डोमेन नाम के DNS नेमसर्वर को अपने डोमेन रजिस्ट्रार के डैशबोर्ड से CloudFlare DNS नेमसर्वर में बदलें
CloudFlare DNS सेवा के साथ इसे प्रबंधित करने के लिए आपको CloudFlare से कोई डोमेन खरीदने या किसी डोमेन को CloudFlare में स्थानांतरित करने की आवश्यकता नहीं है। आप अपने डोमेन रजिस्ट्रार (जहां से आपने डोमेन खरीदा है) के डैशबोर्ड से अपने डोमेन के नेमसर्वर को क्लाउडफ्लेयर डीएनएस नेमसर्वर में बदल सकते हैं और क्लाउडफ्लेयर से अपने डोमेन का प्रबंधन कर सकते हैं। अपने डोमेन के नेमसर्वर को CloudFlare DNS नेमसर्वर में बदलने के बारे में अधिक जानकारी के लिए, यह लेख पढ़ें।
उबंटू/डेबियन पर सर्टबोट और सर्टबोट क्लाउडफ्लेयर प्लगइन इंस्टॉल करना
Certbot और Certbot CloudFlare प्लगइन Ubuntu/Debian के आधिकारिक पैकेज रिपॉजिटरी में उपलब्ध हैं। तो, आप उन्हें उबंटू/डेबियन पर बहुत आसानी से इंस्टॉल कर सकते हैं।
सबसे पहले, निम्नलिखित कमांड के साथ APT पैकेज रिपॉजिटरी कैश को अपडेट करें:
$ सूडो उपयुक्त अद्यतन
Certbot और Certbot CloudFlare DNS प्लगइन स्थापित करने के लिए, निम्न कमांड चलाएँ:
$ सूडो अपार्ट स्थापित करना सर्टिफिकेट पाइथॉन3-सर्टिफिकेट-डीएनएस-क्लाउडफ्लेयरस्थापना की पुष्टि करने के लिए, 'Y' दबाएँ और फिर दबाएँ <दर्ज करें> .
Certbot और Certbot CloudFlare DNS प्लगइन इंस्टॉल किए जा रहे हैं। इसे पूरा होने में थोड़ा समय लगता है.
इस बिंदु पर, Certbot और Certbot CloudFlare DNS प्लगइन स्थापित किया जाना चाहिए।
फेडोरा पर सर्टबोट और सर्टबोट क्लाउडफ्लेयर प्लगइन इंस्टॉल करना
Certbot और Certbot CloudFlare प्लगइन Fedora के आधिकारिक पैकेज रिपॉजिटरी में उपलब्ध हैं और इन्हें Fedora पर बहुत आसानी से इंस्टॉल किया जा सकता है।
सबसे पहले, DNF पैकेज डेटाबेस को निम्नलिखित कमांड से अपडेट करें:
$ सूडो डीएनएफ मेककैश
Fedora पर Certbot और Certbot CloudFlare DNS प्लगइन स्थापित करने के लिए, निम्न कमांड चलाएँ:
$ सूडो डीएनएफ स्थापित करना सर्टिफिकेट पाइथॉन3-सर्टिफिकेट-डीएनएस-क्लाउडफ्लेयरस्थापना की पुष्टि करने के लिए, 'Y' दबाएँ और फिर दबाएँ <दर्ज करें> .
Certbot और Certbot CloudFlare DNS प्लगइन इंस्टॉल किए जा रहे हैं। इसे पूरा होने में थोड़ा समय लगता है.
इस बिंदु पर, फेडोरा पर Certbot और Certbot CloudFlare DNS प्लगइन स्थापित किया जाना चाहिए।
RHEL/AlmaLinux/Rocky Linux/CentOS स्ट्रीम पर Certbot और Certbot CloudFlare प्लगइन इंस्टॉल करना
Certbot CloudFlare DNS प्लगइन RHEL/AlmaLinux/Rocky Linux/CentOS स्ट्रीम के आधिकारिक पैकेज रिपॉजिटरी में उपलब्ध नहीं है। Certbot CloudFlare DNS प्लगइन EPEL पैकेज रिपॉजिटरी में उपलब्ध है। आप RHEL/AlmaLinux/Rocky Linux/CentOS स्ट्रीम पर EPEL पैकेज रिपॉजिटरी को सक्षम कर सकते हैं और वहां से Certbot CloudFlare DNS प्लगइन इंस्टॉल कर सकते हैं।
एक बार जब आप ईपीईएल पैकेज रिपॉजिटरी को सक्षम कर लेते हैं, तो निम्न कमांड के साथ डीएनएफ डेटाबेस कैश को अपडेट करें:
$ सूडो डीएनएफ मेककैश
फिर, निम्नलिखित कमांड के साथ अपने RHEL/AlmaLinux/Rocky Linux/CentOS स्ट्रीम सिस्टम पर Certbot और Certbot CloudFlare DNS प्लगइन इंस्टॉल करें:
$ सूडो डीएनएफ स्थापित करना सर्टिफिकेट पाइथॉन3-सर्टिफिकेट-डीएनएस-क्लाउडफ्लेयरस्थापना की पुष्टि करने के लिए, 'Y' दबाएँ और फिर दबाएँ <दर्ज करें> .
Certbot और Certbot CloudFlare DNS प्लगइन इंस्टॉल किए जा रहे हैं। इसे पूरा होने में थोड़ा समय लगता है.
ईपीईएल रिपॉजिटरी की जीपीजी कुंजी स्वीकार करने के लिए, 'वाई' दबाएं और फिर दबाएं <दर्ज करें> .
इस बिंदु पर, Certbot और Certbot CloudFlare DNS प्लगइन स्थापित किया जाना चाहिए।
यह जाँचना कि क्या Certbot और Certbot CloudFlare प्लगइन सही ढंग से स्थापित हैं
यह जाँचने के लिए कि आपके कंप्यूटर पर Certbot स्थापित है या नहीं, निम्न आदेश चलाएँ:
$ सर्टिफिकेट --संस्करणयदि Certbot स्थापित है, तो कमांड को आपके कंप्यूटर पर स्थापित Certbot का संस्करण नंबर प्रिंट करना चाहिए।
जैसा कि आप देख सकते हैं, हमारी डेबियन मशीन पर Certbot 2.1.0 स्थापित है।
यह जाँचने के लिए कि आपके कंप्यूटर पर Certbot CloudFlare DNS प्लगइन स्थापित है या नहीं, निम्न कमांड चलाएँ:
$ सूडो सर्टिबोट प्लगइन्सयदि सर्टिबोट क्लाउडफ्लेयर डीएनएस प्लगइन स्थापित है, तो आपको प्लगइन्स सूची में 'डीएनएस-क्लाउडफ्लेयर' ढूंढना चाहिए जैसा कि निम्नलिखित स्क्रीनशॉट में दर्शाया गया है:
CloudFlare API टोकन जनरेट करना
डोमेन के स्वामित्व को सत्यापित करने के लिए, Certbot को उस डोमेन पर एक TXT रिकॉर्ड जोड़ने की आवश्यकता है जिसे CloudFlare DNS सर्वर द्वारा प्रबंधित किया जाता है। इसके लिए, Certbot को CloudFlare API टोकन तक पहुंच की आवश्यकता है। आप CloudFlare डैशबोर्ड से अपने डोमेन के लिए API टोकन बना सकते हैं।
सबसे पहले, अपने CloudFlare खाते में लॉग इन करें। फिर, अपने प्रोफ़ाइल आइकन पर क्लिक करें
> मेरी प्रोफाइल पृष्ठ के शीर्ष-दाएँ कोने से.
'एपीआई टोकन' अनुभाग पर जाएँ [1] और 'टोकन बनाएं' पर क्लिक करें [2] .
'संपादन क्षेत्र डीएनएस' अनुभाग से 'टेम्पलेट का उपयोग करें' पर क्लिक करें।
'अनुमति' अनुभाग से, ड्रॉपडाउन मेनू से चिह्नित विकल्पों का चयन करके 'डीएनएस ज़ोन' को 'संपादित करें' अनुमति दें।
यदि आप CloudFlare के साथ एकाधिक डोमेन प्रबंधित कर रहे हैं, तो आप 'ज़ोन संसाधन' अनुभाग से 'विशिष्ट क्षेत्र' के संशोधन की अनुमति दे सकते हैं। एपीआई टोकन को केवल एक ज़ोन को संशोधित करने की अनुमति देना एपीआई टोकन को सभी ज़ोन को संशोधित करने की अनुमति देने से अधिक सुरक्षित है। ऐसा इसलिए है क्योंकि यदि एपीआई टोकन से समझौता किया जाता है, तो हमले की सतह छोटी होगी और कम नुकसान होगा।
यदि आप अपने सभी CloudFlare-प्रबंधित डोमेन को संशोधित करने के लिए एकल API कुंजी का उपयोग करना चाहते हैं, तो 'ज़ोन संसाधन' अनुभाग से 'सभी ज़ोन' चुनें।
एक बार जब आप अपना एपीआई टोकन कॉन्फ़िगर कर लें, तो 'सारांश जारी रखें' पर क्लिक करें।
उन कार्रवाइयों का सारांश प्रदर्शित किया जाएगा जो आप एपीआई टोकन के साथ अपने क्लाउडफ्लेयर-प्रबंधित डोमेन पर कर सकते हैं। 'टोकन बनाएं' पर क्लिक करें।
एक एपीआई टोकन बनाया जाना चाहिए. एपीआई टोकन को किसी सुरक्षित स्थान पर कॉपी करें ताकि आप उसे खो न दें। एक बार जब आप यह पृष्ठ छोड़ देंगे, तो आप इस एपीआई टोकन को दोबारा नहीं ढूंढ पाएंगे। यदि आप इसे खो देते हैं तो आपको एक नया एपीआई टोकन जनरेट करना होगा:
LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5
क्लाउडफ्लेयर एपीआई टोकन को कंप्यूटर/सर्वर पर सुरक्षित रूप से संग्रहीत करना
CloudFlare DNS सर्वर में आपके डोमेन के लिए एक नया TXT रिकॉर्ड जोड़ने के लिए Certbot को CloudFlare API टोकन का उपयोग करने की आवश्यकता है। इसलिए, आपको CloudFlare API टोकन को अपने कंप्यूटर/सर्वर पर स्टोर करना होगा। उचित फ़ाइल एक्सेस अनुमतियों को सुनिश्चित किए बिना एपीआई टोकन को संग्रहीत करने से अन्य प्रोग्राम/उपयोगकर्ताओं को एपीआई टोकन तक पहुंच की अनुमति मिल सकती है। यह वह नहीं है जो आप सुरक्षा कारणों से चाहते हैं। इस अनुभाग में, हम आपको दिखाएंगे कि क्लाउडफ्लेयर एपीआई टोकन को फाइल सिस्टम पर सुरक्षित रूप से कैसे संग्रहीत किया जाए।
सबसे पहले, एक निर्देशिका बनाएं (यानी ~/.secrets/certbot) जहां आप CloudFlare API कुंजी को निम्नानुसार संग्रहीत करना चाहते हैं:
$ mkdir -पी.वी ~ / .रहस्य / सर्टिफिकेट
नई बनाई गई निर्देशिका (यानी ~/.secrets/certbot) में एक 'cloudflare.ini' फ़ाइल बनाएं और इसे अपने पसंदीदा टेक्स्ट एडिटर (यानी नैनो) के साथ निम्नानुसार खोलें:
$ नैनो ~ / .रहस्य / सर्टिफिकेट / Cloudflare.ini 'cloudflare.ini' फ़ाइल में निम्न पंक्ति टाइप करें और दबाएँ
'cloudflare.ini' फ़ाइल के लिए उचित पहुँच अनुमति सुनिश्चित करने के लिए, यह सुनिश्चित करने के लिए निम्नलिखित कमांड चलाएँ कि केवल रूट उपयोगकर्ता के पास फ़ाइल को पढ़ने और लिखने की पहुँच है:
$ सूडो चाउन जड़:जड़~ / .रहस्य / सर्टिफिकेट / Cloudflare.ini$ सूडो चामोद 0600~ / .रहस्य / सर्टिफिकेट / Cloudflare.ini
जैसा कि आप देख सकते हैं, केवल रूट उपयोगकर्ता के पास 'cloudflare.ini' फ़ाइल को पढ़ने और लिखने की अनुमति है।
$ रास -एलएच ~ / .रहस्य / सर्टिफिकेट / Cloudflare.ini
अन्य उपयोगकर्ता जो 'cloudflare.ini' फ़ाइल को पढ़ने का प्रयास करेंगे, उन्हें 'अनुमति अस्वीकृत' त्रुटि संदेश मिलेगा।
$ बिल्ली ~ / .रहस्य / सर्टिफिकेट / Cloudflare.ini
Certbot CloudFlare DNS सत्यापन का उपयोग करके SSL प्रमाणपत्र बनाना
क्लाउडफ्लेयर डीएनएस सत्यापन का उपयोग करके वाइल्डकार्ड डोमेन नाम '*.nodekite.com' के लिए लेट्स एनक्रिप्ट एसएसएल प्रमाणपत्र उत्पन्न करने के लिए, सेरबोट कमांड को निम्नानुसार चलाएं:
$ सूडो सर्टिबोट सर्टेनली --डीएनएस-क्लाउडफ्लेयर --डीएनएस-क्लाउडफ्लेयर-क्रेडेंशियल्स ~ / .रहस्य / सर्टिफिकेट / Cloudflare.ini -डी * .nodekite.comडोमेन नाम 'nodekite.com' और 'www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows' के लिए Let’s Encrypt SSL प्रमाणपत्र बनाने के लिए:
$ सूडो सर्टिबोट सर्टेनली --डीएनएस-क्लाउडफ्लेयर --डीएनएस-क्लाउडफ्लेयर-क्रेडेंशियल्स ~ / .रहस्य / सर्टिफिकेट / Cloudflare.ini -डी www.nodekite.com -डी nodekite.comयदि DNS परिवर्तनों को दुनिया भर में लोकप्रिय DNS नेमसर्वर तक प्रसारित होने में लंबा समय लगता है, तो आप Certbot के '-dns-cloudflare-प्रसार-सेकंड' विकल्प का उपयोग करके उन सेकंड की संख्या निर्धारित कर सकते हैं, जिनके लिए आप Certbot को DNS सत्यापन से पहले प्रतीक्षा करना चाहते हैं। की जाती है।
$ सूडो सर्टिबोट सर्टेनली --डीएनएस-क्लाउडफ्लेयर --डीएनएस-क्लाउडफ्लेयर-क्रेडेंशियल्स ~ / .रहस्य / सर्टिफिकेट / Cloudflare.ini --डीएनएस-क्लाउडफ्लेयर-प्रचार-सेकंड 60 -डी * .nodekite.comएक बार जब आप सर्टिबोट कमांड चलाएंगे, तो आपसे अपना ईमेल पता टाइप करने के लिए कहा जाएगा। अपना ईमेल पता टाइप करें और दबाएँ <दर्ज करें> जारी रखने के लिए।
'Y' दबाएँ और फिर दबाएँ <दर्ज करें> लेट्स एनक्रिप्ट की 'सेवा की शर्तें' स्वीकार करने के लिए।
'Y' दबाएँ और फिर दबाएँ <दर्ज करें> .
लेट्स एनक्रिप्ट एसएसएल प्रमाणपत्र जारी किया जा रहा है। इसे पूरा होने में थोड़ा समय लगता है.
इस बिंदु पर, लेट्स एनक्रिप्ट एसएसएल प्रमाणपत्र जारी किया जाता है। पूरा पथ जहां एसएसएल प्रमाणपत्र फ़ाइलें सहेजी गई हैं प्रदर्शित किया जाना चाहिए। एसएसएल प्रमाणपत्र की समाप्ति तिथि भी प्रदर्शित की जानी चाहिए।
आइए Certbot का उपयोग करके SSL प्रमाणपत्रों को एन्क्रिप्ट करें की सूची बनाएं
आप निम्नलिखित कमांड के साथ Certbot का उपयोग करके जेनरेट किए गए सभी Let’s Encrypt SSL प्रमाणपत्रों को सूचीबद्ध कर सकते हैं:
$ सूडो सर्टिफिकेट प्रमाण पत्रजैसा कि आप देख सकते हैं, 'nodekite.com' डोमेन के लिए जेनरेट किया गया Let’s Encrypt SSL प्रमाणपत्र सूचीबद्ध है [1] . 'nodekite.com' के लिए एक वाइल्डकार्ड एसएसएल प्रमाणपत्र जारी किया जाता है [2] डोमेन नाम। प्रमाणपत्र की समाप्ति तिथि 2024-03-20 है (89 दिनों के लिए वैध) [3] . प्रमाणपत्र और निजी कुंजी पथ भी यहां सूचीबद्ध हैं [4] .
Certbot आपके द्वारा अपने डोमेन के लिए जेनरेट किए गए सभी SSL प्रमाणपत्रों को उनके संबंधित फ़ोल्डर में '/etc/letsencrypt/live' निर्देशिका में संग्रहीत करता है।
$ सूडो रास -आर.एल.एच / वगैरह / letsencrypt / रहना /
आइए Certbot का उपयोग करके SSL प्रमाणपत्रों को एन्क्रिप्ट करें
Certbot स्वचालित रूप से उन सभी Let’s Encrypt SSL प्रमाणपत्रों को नवीनीकृत करता है जिन्हें आपने CloudFlare DNS सत्यापन का उपयोग करके उत्पन्न किया था।
यह जांचने के लिए कि क्या Let's Encrypt SSL प्रमाणपत्रों की स्वतः-नवीनीकरण सुविधा काम करती है, निम्न आदेश चलाएँ:
$ सूडो सर्टिफिकेट नवीनीकरण --पूर्वाभ्यासआपके द्वारा जेनरेट किए गए प्रत्येक Let’s Encrypt SSL प्रमाणपत्र के लिए ऑटो-नवीनीकरण कार्रवाई सिम्युलेटेड है।
यदि परीक्षण सफल रहे तो आपको बधाई दी जाएगी। एक सफल परीक्षण का मतलब है कि एसएसएल प्रमाणपत्र समाप्त होने से पहले स्वचालित रूप से नवीनीकृत हो जाएंगे। आपको और कुछ नहीं करना पड़ेगा.
Certbot ऑटो-नवीनीकरण सुविधा के काम करने के लिए, 'cerbot.timer' सिस्टम टाइमर आपके कंप्यूटर/सर्वर पर सक्षम और सक्रिय होना चाहिए।
आप निम्नलिखित कमांड से जांच सकते हैं कि 'cerbot.timer' सिस्टमडी टाइमर सक्षम और सक्रिय है या नहीं:
$ सूडो systemctl स्थिति certbot.timerजैसा कि आप देख सकते हैं, 'certbot.timer' सिस्टमडी टाइमर सक्षम है (बूट समय पर स्वचालित रूप से प्रारंभ होता है) [1] और सक्रिय [2] . Certbot केवल 11 मिनट के बाद (निम्नलिखित स्क्रीनशॉट के अनुसार) जाँच करता है कि किसी SSL प्रमाणपत्र को नवीनीकृत करने की आवश्यकता है या नहीं और जो SSL प्रमाणपत्र समाप्त होने वाले हैं उन्हें नवीनीकृत करता है [3] .
मैन्युअल रूप से जांचने के लिए कि क्या कोई एसएसएल प्रमाणपत्र समाप्त होने वाला है और समाप्त हो रहे एसएसएल प्रमाणपत्रों को नवीनीकृत करने के लिए, निम्न कमांड चलाएँ:
$ सूडो सर्टिफिकेट नवीनीकरणहमारे मामले में, कोई भी एसएसएल प्रमाणपत्र समाप्त होने वाला नहीं है। इसलिए, Certbot ने किसी भी SSL प्रमाणपत्र को नवीनीकृत करने का प्रयास नहीं किया।
किसी विशिष्ट डोमेन (मान लीजिए *.nodekite.com) के SSL प्रमाणपत्र को नवीनीकृत करने के लिए Certbot को बाध्य करने के लिए, निम्न आदेश चलाएँ:
$ सूडो सर्टिबोट सर्टेनली --बल-नवीनीकरण -डी * .nodekite.com'1' दबाएँ और दबाएँ <दर्ज करें> पहला विकल्प चुनने के लिए (CloudFlare DNS का उपयोग करके DNS सत्यापन के लिए)।
एसएसएल प्रमाणपत्र का नवीनीकरण किया जाना चाहिए।
निष्कर्ष
Certbot का उपयोग करके CloudFlare DNS सत्यापन का उपयोग करके Let's Encrypt SSL प्रमाणपत्र प्राप्त करने के लिए, आपको CloudFlare API टोकन तक पहुंच की आवश्यकता है। इस लेख में, हमने आपको दिखाया कि आप अपने डोमेन के लिए क्लाउडफ्लेयर एपीआई टोकन कैसे बना सकते हैं और इसे अपने कंप्यूटर/सर्वर पर सुरक्षित रूप से संग्रहीत कर सकते हैं ताकि जरूरत पड़ने पर आप इसे सर्टिबोट के साथ एक्सेस कर सकें। हमने आपको यह भी दिखाया कि सबसे लोकप्रिय लिनक्स वितरण पर Certbot और Certbot CloudFlare DNS प्लगइन कैसे स्थापित करें। हमने आपको दिखाया कि Certbot और CloudFlare DNS सत्यापन का उपयोग करके एकल डोमेन के लिए Let’s Encrypt वाइल्डकार्ड SSL प्रमाणपत्र के साथ-साथ SSL प्रमाणपत्र कैसे तैयार करें। अंत में, हमने आपको दिखाया कि Certbot का उपयोग करके स्वचालित रूप से और मैन्युअल रूप से Let’s Encrypt SSL प्रमाणपत्रों को कैसे नवीनीकृत किया जाए।