एंड्रॉयड

सुरक्षित अपाचे के साथ चलो debian 9 पर एन्क्रिप्ट करें

Linux Tutorial for Beginners: Introduction to Linux Operating System

Linux Tutorial for Beginners: Introduction to Linux Operating System

विषयसूची:

Anonim

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

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

यह ट्यूटोरियल आपको मुफ्त में प्राप्त करने की प्रक्रिया के माध्यम से मार्गदर्शन करेगा। डेबियन 9. पर सर्टिफिकेट टूल का उपयोग करके एन्क्रिप्ट करें। हम यह भी बताएंगे कि नए एसएसएल प्रमाणपत्र का उपयोग करने के लिए अपाचे को कैसे कॉन्फ़िगर करें और HTTP / 2 को सक्षम करें।

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

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

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

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

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

संकुल सूची को अद्यतन करें और निम्नलिखित आदेशों का उपयोग करके प्रमाण पत्र पैकेज स्थापित करें:

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

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

sudo a2enmod

निम्नलिखित कमांड चलाकर SSL कॉन्फ़िगरेशन फ़ाइलों को सक्षम करें:

sudo a2enconf letsencrypt sudo a2enconf ssl-params

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

sudo systemctl reload apache2

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

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

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

IMPORTANT NOTES: IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2019-01-17. 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 lose your account credentials, you can recover through e-mails sent to [email protected]. - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - 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

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 को कॉन्फ़िगर किया है। ट्यूटोरियल के अंत में, आपने स्वत: प्रमाणपत्र नवीनीकरण के लिए एक क्रोनजॉब स्थापित किया है।

अपाचे डेबियन आइए सर्टिफिकेट को प्रमाणित करें

यह पोस्ट डेबियन 9 सीरीज़ के हाउ टू इंस्टॉल लैम्प स्टैक का एक हिस्सा है।

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

• डेबियन 9 पर अपाचे को कैसे स्थापित करें • डेबियन 9 पर PHP कैसे स्थापित करें • डेबियन 9 पर अपाचे वर्चुअल होस्ट कैसे सेट करें • डेबियन 9 पर मारियाबेड कैसे स्थापित करें • सुरक्षित अपाचे को डेबियन 9 पर एन्क्रिप्ट करें