एचटीटीपीएस फार्मों के लिए एसएसएल प्रमाणपत्रों को एन्क्रिप्ट कैसे करें

द्वारा प्रकाशित किया गया था Zevenet | 3 जुलाई, 2019

अवलोकन

आइए एनक्रिप्ट एक खुला और स्वचालित प्रमाणपत्र प्राधिकरण है जो इसका उपयोग करता है ACME (स्वचालित प्रमाणपत्र प्रबंधन पर्यावरण) किसी भी संगत ग्राहक को मुफ्त टीएलएस / एसएसएल प्रमाणपत्र प्रदान करने के लिए प्रोटोकॉल। इन प्रमाणपत्रों का उपयोग वेब सर्वर और उपयोगकर्ताओं के बीच संचार को एन्क्रिप्ट करने के लिए किया जा सकता है।

यह ट्यूटोरियल सर्टिफिकेट अथॉरिटीज़ के बारे में संक्षेप में चर्चा करेगा और ज़ीवेट इंटीग्रेशन लेट्स एनक्रिप्ट के साथ काम करता है, फिर रिव्यू करें कि ज़ेवनेट किस तरह से उपयोग करता है certbot (ACME क्लाइंट) चलो संचार को बुनियादी ढांचे के साथ संचार करने के लिए।

Zevenet लोड Balancer 6.0.3 या उच्चतर संस्करण में एक छोटा सर्टिफिकेट रैपर शामिल है letsencryptz Certbot वेबरोट कार्यक्षमता का उपयोग करने के लिए, निम्नलिखित पंक्तियाँ बताती हैं कि यह आवरण कैसे काम करता है, कृपया इसे उत्पादन वातावरण में काम करने के लिए इस सब पर ध्यान दें।

आइए एनक्रिप्ट सत्यापन को कैसे काम करता है?

संक्षिप्त वेबरूट कार्यक्षमता विवरण के रूप में, वेबरूट प्लगइन Zeetet फ़ाइल पथ में आपके प्रत्येक अनुरोधित डोमेन के लिए एक अस्थायी फ़ाइल बनाकर काम करता है /usr/local/zevenet/app/letsencryptz/webroot/.well-known/acme-challenge/। फिर लेट्स एनक्रिप्ट वेरिफिकेशन सर्वर HTTP रिक्वायरमेंट को वैरीफाई करने के लिए अनुरोध करता है कि प्रत्येक अनुरोधित डोमेन के लिए DNS लेट्सट्रिप्टेज रैपर को चलाने वाले सर्वर को हल करता है और सत्यापन के प्रयोजनों के लिए अस्थायी फ़ाइल सुलभ है, निम्न आरेख एक वास्तविक उदाहरण का वर्णन करता है:

ज़ेवनेट एन्क्रिप्ट करते हैं

पिछले आरेख में, ज़ेनवेट लोड बैलेंसर एक राउटर / फ़ायरवॉल के पीछे एक सार्वजनिक आईपी पते के साथ है 185.79.20.147 (एक उदाहरण के रूप में), HTTP और HTTPS ट्रैफ़िक को VIP 192.168.101.31 (उदाहरण के रूप में) के साथ आंतरिक लोड बैलेंसर पर natted किया जाता है, जहाँ लोड बैलेंसर को 2 अलग-अलग खेतों से कॉन्फ़िगर किया गया है:

HTTPS Farm का नाम वेब होस्टिंग के माध्यम से 192.168.101.31: 443। यह खेत वेब होस्टिंग की पेशकश के लिए जिम्मेदार है, इंटरनेट के साथ-साथ विभिन्न वेब सर्वर प्रकाशित किए जाते हैं। उदाहरण के लिए, test1.zevenet.es, test2.zevenet.es, test3.zevenet.es दूसरों के बीच इस आभासी सेवा पर प्रकाशित वेब पृष्ठों का परीक्षण कर रहे हैं।
HTTP फार्म का नाम WebhostingRedirect के माध्यम से 192.168.101.31: 80। यह फ़ार्म केवल पुनर्निर्देशित उद्देश्यों के लिए उपयोग किया जाता है, यह HTTP से HTTPS तक सभी ट्रैफ़िक को बाध्य करता है।

पिछले आरेख डोमेन के लिए SSL लेट्स एनक्रिप्ट प्रमाण पत्र अनुरोध का वर्णन करता है test1.zevenet.es के रूप में इस प्रकार है:

1. एक सर्टिफिकेट रिक्वेस्ट लोड बैलेंसर से ही लेट्स एनक्रिप्ट इन्फ्रास्ट्रक्चर में भेजी जाती है।
2. आइए एन्क्रिप्ट करें नए SSL प्रमाणपत्र अनुरोध का पता लगाता है test1.zevenet.es
3. आइए अनुरोधित होस्ट के लिए DNS आईपी रिज़ॉल्यूशन को एन्क्रिप्ट करें: test1.zevenet.es जाँच कि परिणाम सार्वजनिक आईपी है, वही मूल आईपी जिसने अनुरोध शुरू किया।
4. इस बिंदु पर आइए एनक्रिप्ट की घोषणा करते हैं letsencryptz स्क्रिप्ट (वेबरोट सेरबॉट) जिसे ए के साथ फाइल बनाने की जरूरत है HASH सार्वजनिक रास्ते में http://test1.zevenet.es/.well-know/acme-challenge/ (80 टीसीपी पोर्ट), स्थानीय निर्देशिका /usr/local/zevenet/app/letsencryptz/webroot/.well-known/acme-challenge/। फिर, letsencryptz इंटरनेट (खेत) से इस फ़ाइल को सुलभ बनाने के लिए एक अस्थायी सेवा को कॉन्फ़िगर करता है WebhostingRedirect इस उद्देश्य के लिए संशोधित होने जा रहा है। यदि खेत पहले से ही कॉन्फ़िगर नहीं है letsencryptz इस वीआईपी और पोर्ट) में एक अस्थायी निर्माण करेगा।
6. अस सून अस letsencryptz अस्थायी सेवा निर्माण की पुष्टि करता है, Lets Encrypt सर्वर यह सत्यापित करते हैं कि अस्थायी सत्यापन फ़ाइल बनाई गई है और HASH सामग्री सही है।
7. अंत में, चलो पहले से बनाए गए प्रमाण पत्र के साथ पहले अनुरोध के लिए सर्वर को एन्क्रिप्ट करें साधारण नाम (CN) test1.zevenet.es.
8. Zevenet स्थानीय पथ में पहले से निर्मित प्रमाणपत्र संग्रहीत करेगा / Usr / स्थानीय / zevenet / config / और यह खेत में विन्यस्त होने के लिए तैयार है वेब होस्टिंग.

इस स्तर पर, HTTPS वर्चुअल सेवा के लिए नए लेट्स एनक्रिप्ट क्रिप्ट का उपयोग किया जाएगा।

स्वचालन स्वचालन कमांड एन्क्रिप्ट करें

जैसा कि वर्णित है letsencryptz स्क्रिप्ट आपके एसएसएल प्रमाणपत्रों को बनाने, नवीनीकरण करने, नष्ट करने या सूची बनाने जैसे अन्य कार्यों को प्रबंधित करने के लिए आवश्यक क्रियाओं को स्वचालित करेगी। उपलब्ध कमांड के नीचे खोजें।

root@zva6k:~# letsencryptz

letsencryptz description:

letsencryptz is a let's encrypt (certbot) wrapper with minimal parameters ready to manage Let's Encrypt certificates for ZEVENET https profiles. Take into account that this wrapper uses certbot webroot feature so the public Let's encrypt architecture requires to connect with a local Virtual IP and port (TCP 80 by default) in order to do a request validation for the requested domain, so as soon as the "obtain" param is used, this script will configure an HTTP farm which will be accessed by Let's encrypt for verification purpose, this configuration is done automatically by this script itself, only ensure that the used Virtual IP and HTTP port 80 is not used by any another load balanced farm, and also ensure that the DNS resolution for the requested domain is reachable from let's encrypt system.


usage:

/usr/local/zevenet/bin/letsencryptz <action> <commands>

action: --obtain | --destroy | --renew | --list | --listconf | --help

	--obtain: Request new Certificates using webroot cert-bot module.

		commands: --vip <Virtual IP> --farm <Farm Name> --domain <domain1> --domain <domain2> --domain <domainN> --test

        		--vip: The Virtual IP already configured were to publish a temporal web server, this will be connected by let's encrypt public servers to verify the certificate request. The Virtual IP has to be free on the 80 port in order to be bound by a local process, if it isn't free then use --farm instead.
        		--farm: The farm name which configures a temporal Service called "letsencryptz", if no farm is used a temporal farm called "letsencryptZevenet" will be configured in the selected Virtual IP.
        		--domain: The domain which requests the Certificate for, i.e. www.mycompany.com.
			--test: Optional parameter, if used the certificate is requested for test purpose.

	--destroy: Revoke and delete the indicated Certificate Name, the action is rejected if the given certificate is in use by a farm.
		
		commands: --certname <Certificate Name>
	       	
			--certname: Certificate Name, this value can be obtained from the action --list.

	--renew: Renew the certificates near to expiry, no commands needed
		
		commands: --test --forcerestart --vip <Virtual IP> --farm <Farm Name>
	       		--test:	Optional parameter, if used a dry-run is executed, the renew of the certificates is simulated. 
			--forcerestart: Optional parameter, if used the farms that are using the renewed certificates will be restarted in order to apply the changes.
                        --vip: The Virtual IP already configured where to publish a temporal web server, this will be connected by let's encrypt public servers to verify the certificate renew. The Virtual IP has to be free on the 80 port in order to be bound by a local process, if it isn't free then use --farm instead.
                        --farm: The farm name which configures a temporal Service called "letsencryptz", if no farm is used a temporal farm called "letsencryptZevenet" will be configured in the selected Virtual IP.

	--list: List all the local certificates managed by let's encrypt and the status, no commands needed.

	--listconf: List the Zevenet let's encrypt configuration module (check global.conf file), no commands needed. 

	--help: Obtain this help.


पहली बार ऐसा करने में कुछ समय लगेगा कि Letencryptz निष्पादित हो जाता है क्योंकि सिस्टम स्वचालित रूप से अनसुलझे निर्भरता स्थापित करने जा रहा है, इसका उपयोग करने के लिए शुरू करने से पहले एक कॉन्फ़िगरेशन समीक्षा भी की जाती है, आइए प्रमाण पत्र से संबंधित ईमेल खाते या संपर्क उद्देश्यों का अनुरोध करें, इस ईमेल खाते का उपयोग लेट्स एनक्रिप्ट सिस्टम के खिलाफ की गई किसी भी कार्रवाई के साथ किया जाएगा, इस ईमेल को मुख्य कॉन्फ़िगरेशन फ़ाइल में कॉन्फ़िगर किया जा सकता है /usr/local/zevenet/config/global.conf, निर्देशन $ le_email.

कुछ उपयोग उदाहरण नीचे दिखाए गए हैं।

Zevenet सर्टिफिकेट क्रिएट करें

यह कमांड डोमेन के लिए एक नए प्रमाणपत्र का अनुरोध करता है test2.zevenet.es। इस बात का ध्यान रखें कि दिए गए वीआईपी आंतरिक एक होंगे, जिसे सार्वजनिक आईपी से आंतरिक एक तक यातायात को बंद किया जाना चाहिए। यदि लेट्स एनक्रिप्ट इस सेवा तक पहुंचने में सक्षम नहीं है, तो अनुरोध अस्वीकार कर दिया जाएगा।

root@zva6k:~# letsencryptz --obtain --vip 192.168.101.31 --domain test2.zevenet.es
WARNING: No farm name specified, a temporal farm with name letsencryptZevenet will be created in VIP 192.168.101.31 port 80.
Configuring farm for let's encrypt Certificate Name verification
Obtaining Certificate for domains test2.zevenet.es...
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Obtaining a new certificate
Non-standard path(s), might not work with crontab installed by your operating system package manager
Certificate Request for the domain(s) test2.zevenet.es OK
Created Certificate name test2.zevenet.es in PEM format ready for HTTPS profile
Destroying webroot configuration for the farm letsencryptZevenet
Deleting already configuration for letsencryptZevenet, service letsencryptz
Restarting farms using renewed certificates: 

Zevenet आइए प्रमाणपत्रों की सूची एन्क्रिप्ट करें

इस कमांड का निष्पादन Zevenet लेट्स एनक्रिप्ट सिस्टम द्वारा प्रबंधित वर्तमान प्रमाणपत्र दिखाएगा।

root@zva6k:~# letsencryptz --list
Listing all available certificates for the current configuration in config dir /usr/local/zevenet/config/letsencrypt/
Saving debug log to /var/log/letsencrypt/letsencrypt.log
	Certificate Name: test1.zevenet.es
	Domain(s): test1.zevenet.es
	Expiry Date: 2019-09-19 10:48:02+00:00 (VALID: 77 days)
	Pem Certificate file: /usr/local/zevenet/config/test1_zevenet_es.pem

	Certificate Name: test3.zevenet.es
	Domain(s): test3.zevenet.es
	Expiry Date: 2019-09-26 06:32:52+00:00 (VALID: 83 days)
	Pem Certificate file: /usr/local/zevenet/config/test3_zevenet_es.pem


फील्ड में विचार करें प्रमाण - पत्र नाम, इस क्षेत्र को Letencryptz आवरण के रूप में मान्यता दी जाएगी -certname.

Zevenet आइए प्रमाणपत्र के नवीनीकरण को एन्क्रिप्ट करें

पिछला कमांड यह जाँचता है कि यदि किसी पहले से ही निर्मित प्रमाण पत्र के नवीनीकरण की आवश्यकता है, तो उस स्थिति में नवीकरण स्वतः ही हो जाएगा इस बात को ध्यान में रखें कि यदि नवीनीकृत प्रमाणित है, तो उपयोग को लागू करने के लिए खेत को फिर से शुरू करने की आवश्यकता होगी, कृपया विकल्प का उपयोग करें -forcerestart अगर आप चाहते हैं letsencryptz परिवर्तनों को लागू करने के लिए सभी आवश्यक फार्मों को पुनरारंभ करता है।

root@zva6k:~# letsencryptz --renew --vip 192.168.101.31
Renewing all the required certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Cert not yet due for renewal
Cert not yet due for renewal

Zevenet आइए प्रमाण पत्र हटाने को एन्क्रिप्ट करें

यह आदेश दिए गए प्रमाणपत्र को रद्द करता है और हटाता है। यदि सिस्टम यह पता लगाता है कि चयनित प्रमाणपत्र वर्तमान में किसी भी HTTPS फ़ार्म द्वारा उपयोग में है, तो कार्रवाई को अस्वीकार कर दिया जाएगा, उदाहरण के लिए डिलीट एक्शन से ऊपर खारिज कर दिया गया है क्योंकि प्रमाणपत्र फ़ार्म द्वारा उपयोग में है testhttps.

root@zva6k:~# letsencryptz --destroy --certname test3.zevenet.es
Revoking and deleting certificate(s) test3.zevenet.es for the current configuration...
This file can't be deleted because is used by the farm(s):  testhttps

जैसे ही प्रमाण पत्र खेत से निकाला जाता है, कार्रवाई की जाएगी:

root@zva6k:~# letsencryptz --destroy --certname test3.zevenet.es
Revoking and deleting certificate(s) test3.zevenet.es for the current configuration...
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Deleted certificate(s) test3.zevenet.es in path /usr/local/zevenet/config/test3_zevenet_es.pem

माइग्रेट करते हैं सर्टिफिकेट टू ज़ेवनेट

Zevenet लोड बैलेंसर की सभी कॉन्फ़िगरेशन फ़ाइलों को बचाता है certbot स्थानीय पथ में / Usr / स्थानीय / zevenet / config / letsencrypt /। अपनी मौजूदा सर्टिफिकेट विन्यास फाइल को स्थानांतरित करने के लिए (डिफ़ॉल्ट रूप से) / Etc / letsencryptZvenet के लिए एक अन्य सर्वर का), आपको केवल अपने सर्वर में इस मौजूदा कॉन्फ़िगरेशन डायरेक्टरी की एक टारबॉल (tar.gz फ़ाइल) बनानी होगी और Zevenet लेट्स एनक्रिप्ट कॉन्फ़िगरेशन पथ में सामग्री को अनइंस्टॉल करना होगा। अंत में, चर को संशोधित करने पर विचार करें $ le_email फ़ाइल में global.conf पिछले अनुरोधों में उसी ईमेल का उपयोग किया गया था।

चलो प्रमाण पत्र क्लस्टरिंग समर्थन एन्क्रिप्ट करें

Zevenet Let’s Encrypt प्लगइन पूरी तरह से Zevenet क्लस्टर सेवा के साथ समर्थित है। सभी लेट एनक्रिप्ट की कार्रवाइयों को ज़ेनवेट क्लस्टर सेवा द्वारा दोहराए गए कॉन्फ़िगरेशन फ़ाइल में सहेजा जाता है, इसलिए किसी भी कार्रवाई को निष्पादित किया जाता है मास्टर नोड को दोहराया जाएगा दास स्वचालित रूप से नोड, लेकिन किसी भी कार्रवाई में निष्पादित दास लेट्स एनक्रिप्ट से संबंधित नोड को किसी भी वंशानुक्रम से बचने के लिए छोड़ दिया जाएगा।

प्रमाणपत्रों को स्वचालित रूप से नवीनीकृत करें एन्क्रिप्ट करें

Zevenet आइए एनक्रिप्ट प्लगइन को दैनिक रूप से जांचने के लिए कॉन्फ़िगर किया जा सकता है यदि कुछ प्रमाण पत्र को एक नवीनीकरण की आवश्यकता होती है, अगर सिस्टम किसी दिए गए प्रमाणपत्र को स्वचालित रूप से नवीनीकृत करता है और इसका उपयोग किसी खेत द्वारा किया जाता है, तो आदेश को लागू करने के लिए खेत स्वचालित रूप से फिर से चालू हो जाएगा प्रमाणपत्र परिवर्तन।

स्वचालित नवीनीकरण को कॉन्फ़िगर करने के लिए कृपया निम्नलिखित करें:

निम्नलिखित क्रोन फ़ाइल बनाएँ /etc/cron.d/letsencryptz निम्न सामग्री के साथ:

root@zva6k:~# cat /etc/cron.d/letsencryptz
00 00 * * *	root	/usr/local/zevenet/bin/letsencryptz --renew --forcerestart --vip 192.168.101.31

इस कॉन्फ़िगरेशन के साथ, नवीनीकरण चेक को दैनिक रूप से 00:00 (मध्यरात्रि) पर निष्पादित किया जाएगा। और VIP 192.168.101.31 का इस्तेमाल लेट्स एनक्रिप्ट सिस्टम से सत्यापन के उद्देश्य के लिए पोर्ट 80 में किया जाएगा।

संदर्भ

इस लेख में प्रयुक्त कुछ संदर्भ हैं:

वेबरोट और सर्टिफोट
कैसे काम करता है एन्क्रिप्ट

पर साझा करें:

GNU फ्री डॉक्यूमेंटेशन लाइसेंस की शर्तों के तहत प्रलेखन।

क्या यह लेख सहायक था?

संबंधित आलेख