एंड्रॉयड

सेंटिन 8 पर एनक्रिप्ट के साथ नेगनेक्स को सुरक्षित करें

HOSTINGER WEB HOSTING-How to get a webhosting server with hostinger provider

HOSTINGER WEB HOSTING-How to get a webhosting server with hostinger provider

विषयसूची:

Anonim

आइए एनक्रिप्ट इंटरनेट सुरक्षा अनुसंधान समूह (आईएसआरजी) द्वारा विकसित एक नि: शुल्क, स्वचालित और खुला प्रमाण पत्र प्राधिकरण है जो मुफ्त एसएसएल प्रमाणपत्र प्रदान करता है।

लेट्स एनक्रिप्ट द्वारा जारी किए गए प्रमाण पत्र सभी प्रमुख ब्राउज़रों द्वारा विश्वसनीय हैं और इश्यू डेट से 90 दिनों के लिए वैध हैं।

इस ट्यूटोरियल में, हम एक वेब सर्वर के रूप में Nginx चलाने वाले CentOS 8 पर एक निशुल्क लेट एनक्रिप्ट एसएसएल प्रमाणपत्र स्थापित करने के तरीके के बारे में कदम से कदम निर्देश प्रदान करेंगे। हम यह भी बताएंगे कि SSL प्रमाणपत्र का उपयोग करने के लिए और HTTP / 2 को सक्षम करने के लिए Nginx को कैसे कॉन्फ़िगर किया जाए।

आवश्यक शर्तें

आगे बढ़ने से पहले, सुनिश्चित करें कि आप निम्नलिखित आवश्यक शर्तें पूरी कर चुके हैं:

  • आपके पास अपने सार्वजनिक IP की ओर संकेत करने वाला एक डोमेन नाम है। हम example.com उपयोग करेंगे। आपके पास अपने CentOS सर्वर पर Nginx स्थापित है। आपके फ़ायरवॉल को पोर्ट 80 और 443 पर कनेक्शन स्वीकार करने के लिए कॉन्फ़िगर किया गया है।

प्रमाण पत्र स्थापित करना

सर्बोट एक फ्री कमांड-लाइन टूल है, जो आपके सर्वर पर HTTPS से और ऑटो-इनेबल करने वाले SSL सर्टिफिकेट को प्राप्त करने और नवीनीकृत करने की प्रक्रिया को सरल बनाता है।

सर्टिफिकेट पैकेज मानक CentOS 8 रिपॉजिटरी में शामिल नहीं है, लेकिन इसे विक्रेता की वेबसाइट से डाउनलोड किया जा सकता है।

निम्नलिखित स्क्रिप्ट कमांड को रूट या sudo उपयोगकर्ता के रूप में /usr/local/bin निर्देशिका में सर्टिफिकेट स्क्रिप्ट डाउनलोड करने के लिए चलाएँ:

sudo wget -P /usr/local/bin

डाउनलोड पूरा होने के बाद, फ़ाइल को निष्पादन योग्य बनाएं:

sudo chmod +x /usr/local/bin/certbot-auto

जनरेटिंग स्ट्रांग ध (डिफी-हेलमैन) समूह

डिफिए-हेलमैन कुंजी एक्सचेंज (डीएच) एक असुरक्षित संचार चैनल पर क्रिप्टोग्राफिक कुंजियों का सुरक्षित रूप से आदान-प्रदान करने का एक तरीका है।

निम्नलिखित कमांड टाइप करके 2048 बिट डीएच मापदंडों का एक नया सेट बनाएं:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

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

डोमेन के लिए SSL प्रमाणपत्र प्राप्त करने के लिए, हम Webroot प्लगइन का उपयोग करने जा रहे हैं, जो ${webroot-path}/.well-known/acme-challenge में अनुरोधित डोमेन को मान्य करने के लिए एक अस्थायी फ़ाइल बनाकर कार्य करता है। चलो एन्क्रिप्ट करें सर्वर HTTP फ़ाइल को यह प्रमाणित करने के लिए अस्थायी अनुरोध करता है कि अनुरोधित डोमेन उस सर्वर पर जाता है जहां सर्टिफिकेट चलता है।

इसे और सरल बनाने के लिए हम /var/lib/letsencrypt .well-known/acme-challenge लिए सभी HTTP अनुरोधों को एक ही निर्देशिका, /var/lib/letsencrypt

निम्न कमांड निर्देशिका बनाएंगे और इसे Nginx सर्वर के लिए लिखने योग्य बनाएंगे।

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp nginx /var/lib/letsencrypt sudo chmod g+s /var/lib/letsencrypt

डुप्लिकेट कोड से बचने के लिए, निम्नलिखित दो स्निपेट बनाएं, जो सभी Nginx सर्वर ब्लॉक फ़ाइलों में शामिल होंगे:

sudo mkdir /etc/nginx/snippets /etc/nginx/snippets/letsencrypt.conf

location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; } /etc/nginx/snippets/ssl.conf

ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 30s; add_header Strict-Transport-Security "max-age=63072000" always; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;

ऊपर दिए गए स्निपेट में मोज़िला द्वारा सुझाए गए चिपर्स शामिल हैं, OCSP स्टेपलिंग, HTTP स्ट्रक्ट ट्रांसपोर्ट सिक्योरिटी (HSTS) को सक्षम करता है, और कुछ सुरक्षा को लागू करता है HTTP ध्यान केंद्रित HTTP हेडर।

एक बार स्निपेट letsencrypt.conf , डोमेन सर्वर ब्लॉक को खोलें और नीचे दिए गए के अनुसार letsencrypt.conf स्निपेट को शामिल करें:

/etc/nginx/conf.d/example.com.conf

server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }

परिवर्तन करने के लिए Nginx कॉन्फ़िगरेशन पुनः लोड करें:

sudo systemctl reload nginx

अपने डोमेन के लिए SSL प्रमाणपत्र फ़ाइलें प्राप्त करने के लिए webroot प्लगइन के साथ सर्टिफिकेट टूल चलाएँ:

sudo /usr/local/bin/certbot-auto certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

यदि यह पहली बार आपके द्वारा certbot , तो उपकरण अनुपलब्ध निर्भरताएँ स्थापित करेगा।

एक बार SSL प्रमाणपत्र सफलतापूर्वक प्राप्त हो जाने के बाद, certbot निम्नलिखित संदेश को प्रिंट करेगा:

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2020-03-12. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:

अब जब आपके पास प्रमाणपत्र फ़ाइलें हैं, तो आप अपने डोमेन सर्वर ब्लॉक को निम्नानुसार संपादित कर सकते हैं:

/etc/nginx/conf.d/example.com.conf

server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; #… other code }

ऊपर कॉन्फ़िगरेशन के साथ हम HTTPS को मजबूर कर रहे हैं और www को गैर www संस्करण में पुनर्निर्देशित कर रहे हैं।

अंत में, परिवर्तनों को प्रभावी करने के लिए Nginx सेवा को पुनः लोड करें:

sudo systemctl reload nginx

अब, https:// का उपयोग करके अपनी वेबसाइट खोलें, और आपको हरे रंग का लॉक आइकन दिखाई देगा।

ऑटो-रिन्यूिंग आइए SSL प्रमाणपत्र एन्क्रिप्ट करें

आइए एन्क्रिप्ट करें के प्रमाण पत्र 90 दिनों के लिए वैध हैं। समाप्त होने से पहले प्रमाणपत्रों को स्वचालित रूप से नवीनीकृत करने के लिए, एक क्रोनजोब बनाएं जो दिन में दो बार चलेगा और समाप्ति से 30 दिन पहले स्वचालित रूप से किसी भी प्रमाण पत्र को नवीनीकृत करेगा।

एक नया क्रोनजॉब बनाने के लिए crontab कमांड का उपयोग करें:

sudo crontab -e

निम्नलिखित पंक्ति चिपकाएँ:

0 */12 * * * root test -x /usr/local/bin/certbot-auto -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && /usr/local/bin/certbot-auto -q renew --renew-hook "systemctl reload nginx"

फ़ाइल को सहेजें और बंद करें।

नवीनीकरण प्रक्रिया का परीक्षण करने के लिए, आप सर्टिफिकेट कमांड का उपयोग कर सकते हैं - इसके बाद स्विच चालू करें:

sudo certbot renew --dry-run

यदि कोई त्रुटि नहीं है, तो इसका मतलब है कि परीक्षण नवीनीकरण प्रक्रिया सफल थी।

निष्कर्ष

इस ट्यूटोरियल में, हमने आपको आपके डोमेन के लिए SSL सर्टिफिकेट डाउनलोड करने के लिए लेट एनक्रिप्ट क्लाइंट का उपयोग करने का तरीका दिखाया है। हमने डुप्लिकेट कोड से बचने के लिए Nginx स्निपेट भी बनाए हैं और प्रमाणपत्रों का उपयोग करने के लिए Nginx को कॉन्फ़िगर किया है। ट्यूटोरियल के अंत में, हमने स्वत: प्रमाणपत्र नवीनीकरण के लिए एक क्रोनजॉब स्थापित किया है।

Certbot के बारे में और जानने के लिए, उनके प्रलेखन पृष्ठ पर जाएँ।

nginx सेंटोस सर्टिफिकेट सर्बोट ssl को एनक्रिप्ट करते हैं