एंड्रॉयड

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

FortiManager and FortiAnalyzer Overview (FortiOS 6.2.3)

FortiManager and FortiAnalyzer Overview (FortiOS 6.2.3)

विषयसूची:

Anonim

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

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

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

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

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

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

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

पहले software-properties-common पैकेज स्थापित करें जो अतिरिक्त पीपीए जोड़ने के लिए आवश्यक add-apt-repository टूल प्रदान करता है।

पैकेज इंडेक्स को अपडेट करें और software-properties-common साथ इंस्टॉल करें:

sudo apt update sudo apt install software-properties-common

एक बार इंस्टॉलेशन पूरा हो जाने के बाद, निम्न कमांड का उपयोग करके अपने सिस्टम में सर्टिफिकेट PPA रिपॉजिटरी जोड़ें:

sudo add-apt-repository ppa:certbot/certbot

संकुल सूची को अद्यतन करें और प्रमाणपत्र पट्टिका स्थापित करें:

sudo apt update sudo apt 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 सर्वर के लिए लिखने योग्य बनाएंगे।

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

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

/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) को सक्षम करता है और कुछ सुरक्षा को केंद्रित करता है HTTP ध्यान केंद्रित HTTP हेडर।

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

/etc/nginx/sites-available/example.com.conf

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

sites-available एक प्रतीकात्मक लिंक बनाकर सर्वर ब्लॉक को sites-enabled :

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

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

sudo systemctl reload nginx

वेबरूट प्लगइन के साथ सर्टिफिकेट स्क्रिप्ट चलाएँ और SSL प्रमाणपत्र फ़ाइलें प्राप्त करें:

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-04-23. 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/sites-available/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 को मजबूर कर रहे हैं और डोमेन के non www संस्करण को non www संस्करण में पुनर्निर्देशित कर रहे हैं।

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

sudo systemctl reload nginx

एसएसएल प्रमाणपत्र ऑटो नवीकरण

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

चूंकि हम सर्टिफिकेट वेबरॉट प्लग-इन का उपयोग कर रहे हैं, एक बार प्रमाणपत्र नवीनीकृत हो जाने के बाद हमें नगीन सेवा को फिर से लोड करना होगा। ऐसा करने के लिए --renew-hook "systemctl reload nginx" को /etc/cron.d/certbot फ़ाइल पर /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"

नवीनीकरण प्रक्रिया का परीक्षण करने के लिए, सर्टिफिकेट --dry-run स्विच का उपयोग करें:

sudo certbot renew --dry-run

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

निष्कर्ष

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

nginx ubuntu आइए एन्क्रिप्टेड सर्बोट ssl