एंड्रॉयड

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

Linux Tutorial for Beginners: Introduction to Linux Operating System

Linux Tutorial for Beginners: Introduction to Linux Operating System

विषयसूची:

Anonim

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

इस ट्यूटोरियल में, हम Apache को एक वेब सर्वर के रूप में चल रहे CentOS 7 सर्वर पर एक निशुल्क लेट एनक्रिप्टेड एसएसएल प्रमाणपत्र स्थापित करने के लिए आवश्यक चरणों को कवर करेंगे। हम प्रमाण पत्र प्राप्त करने और नवीनीकृत करने के लिए सर्टिफिकेट उपयोगिता का उपयोग करेंगे।

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

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

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

SSL एन्क्रिप्टेड वेब सर्वर के लिए आवश्यक पैकेजों को स्थापित करें:

yum install mod_ssl openssl

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

सर्बोट एक उपकरण है जो एसएसएल प्रमाणपत्रों को लेट्स एनक्रिप्ट और ऑटो-सक्षम करने वाले HTTPS से आपके सर्वर पर प्राप्त करने की प्रक्रिया को सरल बनाता है।

ईपीईएल से स्थापना के लिए सर्टिफिकेट पैकेज एवेलेबल है। यदि आपके सिस्टम पर EPEL रिपॉजिटरी स्थापित नहीं है, तो आप इसे निम्न कमांड का उपयोग करके स्थापित कर सकते हैं:

sudo yum install epel-release

एक बार EPEL रिपॉजिटरी सक्षम हो जाने के बाद, टाइप करके पैकेजबॉट पैकेज स्थापित करें:

sudo yum 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

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

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

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

/etc/httpd/conf.d/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/httpd/conf.d/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

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

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

sudo systemctl reload

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

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-12-07. 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:

अपाचे संस्करण 2.4.6 के साथ CentOS 7 जहाज, जिसमें SSLOpenSSLConfCmd निर्देश शामिल नहीं है। यह निर्देश केवल Apache 2.4.8 पर उपलब्ध है, और इसका उपयोग OpenSSL पैरामीटर जैसे कि डिफि-हेलमैन कुंजी एक्सचेंज (DH) के कॉन्फ़िगरेशन के लिए किया जाता है।

हमें लेट्स एनक्रिप्ट एसएसएल सर्टिफिकेट और जेनरेट किए गए डीएच फाइल का उपयोग करके एक नई संयुक्त फाइल बनानी होगी। ऐसा करने के लिए, टाइप करें:

cat /etc/letsencrypt/live/example.com/cert.pem /etc/ssl/certs/dhparam.pem >/etc/letsencrypt/live/example.com/cert.dh.pem

अब जब सब कुछ सेट हो गया है, तो अपने डोमेन वर्चुअल होस्ट कॉन्फ़िगरेशन को निम्नानुसार संपादित करें:

/etc/httpd/conf.d/example.com.conf

ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration

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

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

sudo systemctl restart

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

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

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

नया क्रोनजॉब बनाने के लिए crontab कमांड चलाएं जो सर्टिफिकेट को रिन्यू करेगा, DH कुंजी सहित एक नई संयुक्त फाइल बनाएगा और अपाचे को फिर से शुरू करेगा:

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

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

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

sudo certbot renew --dry-run

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

निष्कर्ष

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

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

यह पोस्ट CentOS 7 श्रृंखला पर स्थापित LAMP स्टैक का एक हिस्सा है।

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

• CentOS 7 पर अपाचे को कैसे स्थापित करें • CentOS 7 पर MySQL स्थापित करें