एंड्रॉयड

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

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

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

इस ट्यूटोरियल में, हम सेंटोस 7 पर सर्टिफिकेट टूल का उपयोग करके अपने एनगिनक्स को सुरक्षित करने के तरीके के बारे में कदम से कदम निर्देश प्रदान करेंगे।

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

सुनिश्चित करें कि आप इस ट्यूटोरियल को जारी रखने से पहले निम्नलिखित आवश्यक शर्तें पूरी कर चुके हैं:

  • आपके पास अपने सार्वजनिक सर्वर आईपी की ओर इशारा करते हुए एक डोमेन नाम है। इस ट्यूटोरियल में हम example.com का उपयोग करेंगे। आपने EPEL रिपॉजिटरी को सक्षम किया है और CentOS 7 पर Nginx को कैसे स्थापित करें, निम्न का पालन करके Nginx को स्थापित किया है।

प्रमाण पत्र स्थापित करें

सर्टिफोट टूल का उपयोग करने में आसान है जो लेट्स एनकाउंटर एसएसएल सर्टिफिकेट और वेब सर्वर को कॉन्फ़िगर करने और प्राप्त करने के कार्यों को स्वचालित कर सकता है।

प्रमाण पत्र पैकेज स्थापित करने के लिए EPEL रिपॉजिटरी रन बनाएं:

sudo yum install certbot

मजबूत धा (डिफी-हेलमैन) समूह उत्पन्न करें

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

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

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 यदि आप चाहें, तो आप आकार को 4096 बिट तक बदल सकते हैं, लेकिन उस स्थिति में, सिस्टम एंट्रोपी के आधार पर पीढ़ी को 30 मिनट से अधिक समय लग सकता है।

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

हमारे डोमेन के लिए एक एसएसएल प्रमाणपत्र प्राप्त करने के लिए हम वेबरूट प्लगइन का उपयोग करने जा रहे हैं, जो कि अनुरोधित डोमेन को ${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

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

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:50m; ssl_session_tickets off; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; ssl_prefer_server_ciphers on; 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=15768000; includeSubdomains; preload"; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;

ऊपर दिए गए स्निपेट में मोज़िला द्वारा सुझाए गए चिपर्स शामिल हैं, OCSP स्टेपलिंग, HTTP स्ट्रक्ट ट्रांसपोर्ट सिक्योरिटी (HSTS) को सक्षम करता है और कुछ सुरक्षा को लागू करता है ers ध्यान केंद्रित 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

अब आप वेबरूट प्लगइन के साथ सर्टिफिकेट चला सकते हैं और जारी करके अपने डोमेन के लिए एसएसएल प्रमाणपत्र फ़ाइलें प्राप्त कर सकते हैं:

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

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

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 2018-06-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot 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

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

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

एक नया क्रोनजॉब बनाने के लिए crontab कमांड चलाएँ:

sudo crontab -e

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

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

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

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

sudo certbot renew --dry-run

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

निष्कर्ष

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

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

यह पोस्ट CentOS 7 श्रृंखला पर इंस्टॉल LEMP स्टैक का एक हिस्सा है।

इस श्रृंखला में अन्य पोस्ट:

कैसे CentOS 7 पर Nginx स्थापित करने के लिए • CentOS 7 पर एन्क्रिप्ट के साथ Nginx को सुरक्षित रखें • CentOS 7 पर MariaDB स्थापित करें • CentOS 7 पर PHP 7 स्थापित करें • CentOS 7 पर Nginx सर्वर ब्लॉक कैसे सेट करें