एंड्रॉयड

Ubuntu 18.04 पर एन्क्रिप्ट होने के साथ सुरक्षित अपाचे

Linux Tutorial for Beginners: Introduction to Linux Operating System

Linux Tutorial for Beginners: Introduction to Linux Operating System

विषयसूची:

Anonim

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

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

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

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

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

  • आपके सार्वजनिक सर्वर आईपी की ओर इशारा करते हुए डोमेन नाम। हम example.com का उपयोग करेंगे। आपने अपने डोमेन के लिए Apache वर्चुअल होस्ट के साथ Apache इंस्टॉल किया है।

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

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

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

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

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

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

डुप्लिकेटिंग कोड से बचने के लिए निम्नलिखित दो विन्यास स्निपेट बनाएं:

/etc/apache2/conf-available/letsencrypt.conf

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS /etc/apache2/conf-available/ssl-params.conf

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff # Requires Apache >= 2.4 SSLCompression off SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" # Requires Apache >= 2.4.11 SSLSessionTickets Off SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"

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

कॉन्फ़िगरेशन फ़ाइलों को सक्षम करने से पहले, सुनिश्चित करें कि mod_ssl और mod_headers दोनों जारी करके सक्षम हैं:

sudo a2enmod ssl sudo a2enmod headers

अगला, निम्नलिखित कमांड चलाकर एसएसएल विन्यास फाइल को सक्षम करें:

sudo a2enconf letsencrypt sudo a2enconf ssl-params

HTTP / 2 मॉड्यूल सक्षम करें, जो आपकी साइटों को तेज और अधिक मजबूत बनाएगा:

sudo a2enmod

परिवर्तनों को प्रभावी करने के लिए अपाचे कॉन्फ़िगरेशन को पुनः लोड करें:

sudo systemctl reload apache2

अब, हम वेबरूट प्लगइन के साथ सर्टिफिकेट टूल चला सकते हैं और टाइप करके एसएसएल सर्टिफिकेट फाइल प्राप्त कर सकते हैं:

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-10-28. 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/apache2/sites-available/example.com.conf

ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration

उपरोक्त कॉन्फ़िगरेशन के साथ, हम HTTPS को मजबूर कर रहे हैं और www से गैर-www संस्करण पर पुनर्निर्देशित कर रहे हैं। अपनी आवश्यकताओं के अनुसार विन्यास को समायोजित करने के लिए स्वतंत्र फेल।

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

sudo systemctl reload apache2

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

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

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

एक बार प्रमाणपत्र नवीनीकृत होने के बाद हमें अपाचे सेवा को फिर से लोड करना होगा। --renew-hook "systemctl reload apache2" को /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 apache2"

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

sudo certbot renew --dry-run

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

निष्कर्ष

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

अपाचे ubuntu को प्रमाणित करें

यह पोस्ट हाउ-टू-इंस्टॉल-लैंप-स्टैक-ऑन-उबंटु -18-04 श्रृंखला का एक हिस्सा है।

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

• Ubuntu 18.04 पर अपाचे को कैसे स्थापित करें • Ubuntu 18.04 पर अपाचे वर्चुअल होस्ट को कैसे सेट करें