मार्च 2018 में वाइल्डकार्ड सर्टिफिकेट के लिए एनक्रिप्ट को सपोर्ट जोड़ा गया है। वाइल्डकार्ड प्रमाणपत्र आपको किसी एकल प्रमाणपत्र के साथ डोमेन के सभी प्रथम-स्तरीय उप-डोमेन सुरक्षित करते हैं। वाइल्डकार्ड प्रमाणपत्र केवल ACMEv2 के माध्यम से प्राप्य हैं, जो ACME प्रोटोकॉल का एक अद्यतन संस्करण है। किसी वाइल्डकार्ड या गैर-वाइल्डकार्ड प्रमाणपत्र के लिए ACMEv2 का उपयोग करने के लिए, आपको एक क्लाइंट की आवश्यकता होगी जिसे ACMEv2 का समर्थन करने के लिए अद्यतन किया गया है। ऐसा ही एक क्लाइंट acme.sh है, जो बिना किसी निर्भरता के शेल (य���निक्स शेल) भाषा में विशुद्ध रूप से लिखा गया ACME / ACMEv2 प्रोटोकॉल क्लाइंट है। इसके अलावा, DNS-01 चुनौती प्रकार का उपयोग करके वाइल्डकार्ड डोमेन को मान्य किया जाना चाहिए। इसका मतलब है कि वाइल्डकार्ड प्रमाणपत्र प्राप्त करने के लिए डोमेन पर नियंत्रण साबित करने के लिए आपको DNS TXT रिकॉर्ड को संशोधित करने की आवश्यकता है।
इस मार्गदर्शिका में, हम बताते हैं कि कैसे acme.sh
क्लाइंट से यू-बी 19 19.04 पर फ्री वाइल्डकार्ड सेरेक्ट प्राप्त करने और उसकी तैनाती करने के लिए , Vultr API का उपयोग करके DNS रिकॉर्ड्स के स्वत: हेरफेर के लिए Lexicon टूल और Nginx वेब सर्वर को सीर्ट्स तैनात करें।
आवश्यकताएँ
- हौसले से तैनात उबंटू 19.04 वल्चर क्लाउड सर्वर।
- आपके पास एक पंजीकृत डोमेन नाम है। यह गाइड
example.com
एक उदाहरण डोमेन के रूप में उपयोग करता है ।
- सुनिश्चित करें कि आपने अपने पूरी तरह से योग्य डोमेन नाम (FQDN) के लिए A / AAAA और CNAME DNS रिकॉर्ड सेट किए हैं। यदि आप अपने आप को डीएनएस अवधारणाओं के साथ परिचित कराने की आवश्यकता है, तो आप वल्चर डीएनएस ट्यूटोरियल के परिचय से परामर्श करना चाह सकते हैं।
- Vultr API Access आपके Vultr अकाउंट कंट्रोल पैनल में सक्षम है।
शुरू करने से पहले
Ubuntu संस्करण की जाँच करें।
lsb_release -ds
# Ubuntu 19.04
sudo
पहुंच और अपने पसंदीदा उपयोगकर्ता नाम के साथ एक नया उपयोगकर्ता खाता बनाएं और उस पर स्विच करें। हम उपयोग करते हैं johndoe
।
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe
नोट : अपने उपयोगकर्ता नाम के साथ बदलें johndoe
।
टाइमजोन सेट करें।
sudo dpkg-reconfigure tzdata
सुनिश्चित करें कि आपका उबंटू सिस्टम अद्यतित है।
sudo apt update && sudo apt upgrade -y
आवश्यक पैकेज स्थापित करें।
sudo apt install -y git wget curl socat
Nginx स्थापित करें
Nginx वेब सर्वर स्थापित करें।
sudo apt install -y nginx
संस्करण की जाँच करें।
sudo nginx -v
# nginx version: nginx/1.15.9 (Ubuntu)
पायथन और लेक्सिकन स्थापित करें
Acme.sh और Vultr API का उपयोग करके एनकाउंटर को वाइल्डकार्ड सर्टिफिकेट प्राप्त करने की प्रक्रिया में पहले कदम के रूप में, आपको पायथन और लेक्सिकन को स्थापित करने की आवश्यकता है । लेक्सिकन एक पायथन पैकेज है जो मानकीकृत तरीके से कई DNS प्रदाताओं पर DNS रिकॉर्ड को हेरफेर करने का एक तरीका प्रदान करता है।
यदि आपके सिस्टम पर पहले से इंस्टॉल नहीं है तो पायथन को स्थापित करें।
sudo apt install -y python3
संस्करण की पुष्टि करके स्थापना की पुष्टि करें।
python3 --version
# Python 3.7.3
लेक्सिकन उपकरण स्थापित करें। एक लेक्सिकन एक पायथन उपकरण है जो आपको मानकीकृत तरीके से विभिन्न DNS प्रदाताओं पर डीएनएस रिकॉर्ड में हेरफेर करने की अनुमति देता है।
sudo apt install -y lexicon
लेक्सिकन संस्करण की जाँच करें।
lexicon --version
# lexicon 3.0.8
acme.sh
क्लाइंट स्थापित करें
Acme.sh
एक एसीएमई प्रोटोकॉल क्लाइंट है जो पूरी तरह से शेल (यूनिक्स शेल) भाषा में लिखा गया है जो लेट्स एनक्रिप्ट के माध्यम से हस्ताक्षरित प्रमाणपत्र प्राप्त करने की प्रक्रिया को स्वचालित करता है। यह ACME v1 और ACME v2 का समर्थन करता है, और सबसे महत्वपूर्ण बात यह ACME v2 वाइल्डकार्ड सेर्ट्स का समर्थन करता है। इस खंड में, हम एक Acme.sh स्क्रिप्ट स्थापित करते हैं।
नोट: इसे root
स्थापित करने के लिए उपयोगकर्ता का उपयोग करने की सिफारिश की जाती है acme.sh
, हालांकि इसकी आवश्यकता नहीं है root
/ sudo
पहुंच नहीं है ।
root
यदि आपने इसे बनाया है, तो नियमित उपयोगकर्ता से उपयोगकर्ता पर स्विच करें।
sudo su - root
डाउनलोड करें और इंस्टॉल करें acme.sh
।
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "[email protected]"
source ~/.bashrc
cd
संस्करण की जाँच करें।
acme.sh --version
# v2.8.2
वाइल्डकार्ड सेरट्स को लेट एनक्रिप्ट से प्राप्त करें
वाइल्डकार्ड प्रमाणपत्र प्राप्त करने के लिए, हम केवल डीएनएस सत्यापन विधि का उपयोग कर सकते हैं। हम TXT DNS रिकॉर्ड्स में हेरफेर करने के लिए Lexicon और Vultr DNS API का उपयोग करते हैं।
अपने डोमेन के लिए RSA और ECC वाइल्डकार्ड सेर्ट्स प्राप्त करें।
# Configure your API key and username
export PROVIDER=vultr
export LEXICON_VULTR_USERNAME="[email protected]"
export LEXICON_VULTR_TOKEN="XXXXXXXXXXXXXXX"
# RSA 2048
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength 2048
# ECC 256
acme.sh --issue --dns dns_lexicon -d example.com -d '*.example.com' --keylength ec-256
नोट : अपने डोमेन नाम के साथ प्रतिस्थापित करने के लिए मत भूलना example.com
, और अपने खुद के साथ Vultr एपीआई प्लेसहोल्डर मूल्यों की जगह।
पूर्ववर्ती आदेशों को चलाने के बाद, आपके प्रमाणपत्र और कुंजियाँ इस प्रकार हैं:
- RSA के लिए:
~/.acme.sh/example.com
निर्देशिका।
- ECC / ECDSA के लिए:
~/.acme.sh/example.com_ecc
निर्देशिका।
नोट : आपको ~/.acme.sh/
फ़ोल्डर में प्रमाणित फ़ाइलों का उपयोग नहीं करना चाहिए , वे केवल आंतरिक उपयोग के लिए हैं, भविष्य में निर्देशिका संरचना बदल सकती है।
अपने अनाज को सूचीबद्ध करने के लिए, आप चला सकते हैं:
acme.sh --list
उत्पादन में अपने अनाज को संग्रहीत करने के लिए एक फ़ोल्डर बनाएं। हम /etc/letsencrypt
निर्देशिका का उपयोग करते हैं।
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
अपने सर्वर पर उत्पादन उपयोग के लिए प्रमाण पत्र स्थापित / कॉपी करें।
# RSA
acme.sh --install-cert -d example.com \
--cert-file /etc/letsencrypt/example.com/cert.pem \
--key-file /etc/letsencrypt/example.com/private.key \
--fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
--cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
--key-file /etc/letsencrypt/example.com_ecc/private.key \
--fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"
अब जब हमने लेट्स एनक्रिप्ट से वाइल्डकार्ड सेरेट्स को सफलतापूर्वक प्राप्त कर लिया है, तो हमें नग्नेक्स वेब सर्वर को कॉन्फ़िगर करने की आवश्यकता है। सभी सेर्ट्स को हर 60 दिनों में स्वचालित रूप से नवीनीकृत किया जाता है।
अपने पसंदीदा स्थान पर सीट्स प्राप्त करने और स्थापित करने के बाद, आप root
उपयोगकर्ता से एक नियमित sudo
उपयोगकर्ता के लिए लॉग आउट कर सकते हैं और sudo
यदि आवश्यक हो तो अपने सर्वर का प्रबंधन करना जारी रख सकते हैं ।
exit
sudo vim /etc/nginx/sites-available/example.com.conf
निम्न सामग्री के साथ फ़ाइल को चलाएं और आबाद करें। example.com
अपने डोमेन नाम के साथ सभी घटनाओं को प्रतिस्थापित करें।
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com *.example.com;
root /var/www/example.com;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
}
example.com.conf
फ़ाइल को sites-enabled
निर्देशिका से लिंक करके नए कॉन्फ़िगरेशन को सक्रिय करें ।
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Nginx कॉन्फ़िगरेशन का परीक्षण करें।
sudo nginx -t
रीलोडेड नेग्नेक्स।
sudo systemctl reload nginx.service
बस। हमने acme.sh, Lexicon, और Vultr API का उपयोग करके, Nginx में वाइल्डकार्ड सीरेट्स को तैनात किया। जब आप गतिशील रूप से उत्पन्न कई प्रथम स्तर के उप-डोमेन सुरक्षित करना चाहते हैं, तो वाइल्डकार्ड सीट्स उपयोगी हो सकते हैं।