एंड्रॉयड

डेबियन 10 लाइनक्स पर एनक्रिप्ट के साथ नेगनेक्स को सुरक्षित करें

20 Ways to Use a Virtual Machine (and other ideas for your homelab)

20 Ways to Use a Virtual Machine (and other ideas for your homelab)

विषयसूची:

Anonim

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

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

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

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

गाइड के साथ आगे बढ़ने से पहले सुनिश्चित करें कि निम्नलिखित शर्तें पूरी की गई हैं:

  • Sudo विशेषाधिकार के साथ रूट या उपयोगकर्ता के रूप में लॉग इन करें। जिस डोमेन के लिए आप एसएसएल प्रमाणपत्र प्राप्त करना चाहते हैं वह आपके सार्वजनिक सर्वर आईपी को इंगित करना चाहिए। हम example.com उपयोग करेंगे.Nginx स्थापित।

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

हम प्रमाणपत्र प्राप्त करने और नवीनीकृत करने के लिए सर्टिफिकेट टूल का उपयोग करेंगे।

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

सर्टिफिकेट पैकेज को डिफ़ॉल्ट डेबियन रिपॉजिटरी में शामिल किया गया है। Certbot को स्थापित करने के लिए निम्नलिखित कमांड चलाएँ:

sudo apt update sudo apt install certbot

जनक ध (डिफी-हेलमैन) समूह

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

हम सुरक्षा को मजबूत करने के लिए 2048 बिट डीएच मापदंडों का एक नया सेट बनाने जा रहे हैं:

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

आप आकार को 4096 बिट तक भी बदल सकते हैं, लेकिन सिस्टम एंट्रॉपी के आधार पर पीढ़ी को 30 मिनट से अधिक समय लग सकता है।

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

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

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

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

mkdir -p /var/lib/letsencrypt/.well-known chgrp www-data /var/lib/letsencrypt chmod g+s /var/lib/letsencrypt

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

अपना टेक्स्ट एडिटर खोलें और पहला स्निपेट दें, letsencrypt.conf :

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

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

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

sudo nano /etc/nginx/snippets/ssl.conf /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.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;

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

sudo nano /etc/nginx/sites-available/example.com /etc/nginx/sites-available/example.com

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

डोमेन सर्वर ब्लॉक को सक्षम करने के लिए sites-enabled निर्देशिका के लिए एक प्रतीकात्मक लिंक बनाएं:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

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

sudo systemctl restart nginx

अब आप निम्नलिखित कमांड चलाकर एसएसएल प्रमाणपत्र फ़ाइलें प्राप्त करने के लिए तैयार हैं:

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

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

IMPORTANT NOTES: 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-02-22. 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:

डोमेन सर्वर ब्लॉक को संपादित करें और SSL प्रमाणपत्र फ़ाइलों को निम्नानुसार शामिल करें:

sudo nano /etc/nginx/sites-available/example.com /etc/nginx/sites-available/example.com

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 }

उपरोक्त कॉन्फ़िगरेशन Nginx को HTTP से HTTPS और www से गैर-www संस्करण में पुनर्निर्देशित करने के लिए कहता है।

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

sudo systemctl restart nginx

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

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

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

नवीनीकरण पर सर्टिफिकेट लोड करने के लिए nginx सेवा को सर्वर के लिए पुनः लोड किया जाना चाहिए। इस तरह से दिखता है - /etc/cron.d/certbot फ़ाइल में --renew-hook "systemctl reload nginx" जोड़ें।

sudo nano /etc/cron.d/certbot /etc/cron.d/certbot

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

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

निष्कर्ष

एसएसएल सर्टिफिकेट होना आजकल जरूरी है। यह आपकी वेबसाइट को सुरक्षित करता है, SERP रैंकिंग स्थिति को बढ़ाता है, और आपको अपने वेब सर्वर पर HTTP / 2 को सक्षम करने की अनुमति देता है।

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

सर्बोट के बारे में अधिक जानने के लिए, सर्टिफिकेट प्रलेखन पर जाएँ।

nginx डेबियन चलो सर्बोट ssl एन्क्रिप्ट करते हैं