SSL के साथ अपाचे को कैसे सुरक्षित करें और FreeBSD में एनक्रिप्ट करें


इस ट्यूटोरियल में हम सीखेंगे कि Apache HTTP सर्वर के साथ TLS/SSL सर्टिफ़िकेट लेट्स एनक्रिप्ट करें FreeBSD 11 के साथ। एक्स । हम यह भी कवर करेंगे कि लेट्स एनक्रिप्ट के लिए सर्टिफिकेट नवीनीकरण की प्रक्रिया को कैसे स्वचालित किया जाए।

सुरक्षा प्रदान करने के लिए, एंड नोड्स के बीच संचार को एन्क्रिप्ट करने के लिए Apache वेब सर्वर द्वारा TLS/SSL प्रमाणपत्र का उपयोग किया जाता है। आइए एनक्रिप्ट को सर्टिफिकेट कमांड लाइन उपयोगिता प्रदान करता है, जो एक ऐसा अनुप्रयोग है जो आपको मुफ्त में विश्वसनीय प्रमाण पत्र प्राप्त करने के तरीके को सुविधाजनक बना सकता है।

  1. Installation of FreeBSD 11.x
  2. 10 Things to Do After FreeBSD Installation
  3. How to Install Apache, MariaDB and PHP in FreeBSD

चरण 1: FreeBSD पर Apache SSL कॉन्फ़िगर करें

1। सर्टिफिकेट उपयोगिता स्थापित करने और अपाचे के लिए TSL कॉन्फ़िगरेशन फ़ाइल बनाने से पहले, पहले साइटों-उपलब्ध और साइटों-सक्षम अपाचे रूट विन्यास निर्देशिका में नीचे दिए गए आदेश जारी करके।

इन दो निर्देशिकाओं का उद्देश्य मुख्य Apache httpd.conf कॉन्फ़िगरेशन फ़ाइल को संशोधित किए बिना हर बार जब हम एक नया वर्चुअल होस्ट जोड़ते हैं, तो सिस्टम में वर्चुअल होस्टिंग कॉन्फ़िगरेशन प्रबंधन को सुविधाजनक बनाना है।

# mkdir /usr/local/etc/apache24/sites-available
# mkdir /usr/local/etc/apache24/sites-enabled

2। जब आपने दोनों निर्देशिकाएं बनाई हैं, तो Apache httpd.conf फ़ाइल को टेक्स्ट एडिटर के साथ खोलें और निम्न पंक्ति को फ़ाइल के अंत के करीब जोड़ें जैसा कि नीचे सचित्र है

# nano /usr/local/etc/apache24/httpd.conf

निम्नलिखित पंक्ति जोड़ें:

IncludeOptional etc/apache24/sites-enabled/*.conf

3। अगला, 020_mod_ssl.conf mod.d.d नाम से एक नई फ़ाइल बनाकर अपाचे के लिए TLS मॉड्यूल सक्षम करें। निम्नलिखित सामग्री के साथ/मजबूत> निर्देशिका।

# nano /usr/local/etc/apache24/modules.d/020_mod_ssl.conf

020_mod_ssl.conf फ़ाइल करने के लिए निम्न पंक्तियाँ जोड़ें।

Listen 443
SSLProtocol ALL -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog  builtin
SSLSessionCacheTimeout  300

4। अब, SSL मॉड्यूल को /usr/local/etc/apache24/httpd.conf फ़ाइल को प्रारंभ से .htag हटाकर निम्न पंक्ति के रूप में नीचे सचित्र:

LoadModule ssl_module libexec/apache24/mod_ssl.so

५। नीचे दिए गए अंश:

# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf

bsd.lan-ssl.conf फ़ाइल में वर्चुअलहोस्ट कॉन्फ़िगरेशन का पालन करें।

<VirtualHost *:443>
    ServerName www.yourdomain.com
	ServerAlias yourdomain.com
                DocumentRoot "/usr/local/www/apache24/data/"
	SSLEngine on

	SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem"
	SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem"
	SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem"

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>

<Directory "/usr/local/www/apache24/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

	BrowserMatch "MSIE [2-5]" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0

	CustomLog "/var/log/apache/httpd-ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

	<Directory "/usr/local/www/apache24/data/">
            Options Indexes FollowSymLinks MultiViews
        #AllowOverride controls what directives may be placed in .htaccess files.       
                        AllowOverride All
        #Controls who can get stuff from this server file
                        Require all granted
        </Directory>
       
    ErrorLog "/var/log/apache/yourdomain.ssl-error.log"
    CustomLog "/var/log/apache/yourdomain.ssl-access_log" combined

</VirtualHost>

Makre सुनिश्चित करें कि आप डोमेन नाम चर को ServerName , ServerAlias, ErrorLog , CustomLog कथनों के अनुसार प्रतिस्थापित करते हैं।

चरण 2: FreeBSD पर Lets’Encrypt स्थापित करें

6। अगले चरण पर, प्रमाणित करें उपयोगिता प्रदान करने के लिए निम्न आदेश जारी करें चलो एन्क्रिप्ट करें , जिसका उपयोग करने के लिए किया जाएगा < मजबूत> अपाचे टीएसएल आपके डोमेन के लिए मुफ्त प्रमाण पत्र।

सर्टिफिकेट स्थापित करते समय आपके स्क्रीन पर संकेत की एक श्रृंखला प्रदर्शित की जाएगी। Certbot उपयोगिता को कॉन्फ़िगर करने के लिए नीचे स्क्रीनशॉट का उपयोग करें। इसके अलावा, आपके मशीन संसाधनों के आधार पर, सर्टिफिकेट उपयोगिता को संकलित और स्थापित करने में कुछ समय लग सकता है।

# cd /usr/ports/security/py-certbot
# make install clean

7। संकलन प्रक्रिया समाप्त होने के बाद, अद्यतन करने के लिए नीचे दिए गए आदेश को जारी करें सर्टिफिकेट उपयोगिता और सर्टिफोट आवश्यक निर्भरता।

# pkg install py27-certbot
# pkg install py27-acme

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

# certbot certonly --webroot -w /usr/local/www/apache24/data/ -d yourdomain.com -d www.yourdomain.com

प्रमाण पत्र प्राप्त करते समय, प्रमाणपत्र नवीकरण के लिए एक ईमेल पते की आपूर्ति करें, Let के एनक्रिप्ट नियमों और शर्तों से सहमत होने के लिए एक दबाएं और ईमेल एड्रेस Let's के एनक्रिप्ट पार्टनर्स को साझा न करने के लिए n को दबाएं।

सर्टिफिकेट कमांड आउटपुट

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):[email 
There seem to be problems with that address. Enter email address (used for
urgent renewal and security notices)  If you really want to skip this, you can
run the client with --register-unsafely-without-email but make sure you then
backup your account key from /etc/letsencrypt/accounts   (Enter 'c' to cancel):[email 

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: a ------------------------------------------------------------------------------- Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about EFF and our work to encrypt the web, protect its users and defend digital rights. ------------------------------------------------------------------------------- (Y)es/(N)o: n Obtaining a new certificate Performing the following challenges: http-01 challenge for www.domain.com Using the webroot path /usr/local/www/apache24/data for all unmatched domains. Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem. Your cert will expire on 2017-11-15. 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" - Your account credentials have been saved in your Certbot configuration directory at /usr/local/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: https://eff.org/donate-le

9। जब आपने अपने डोमेन के लिए प्रमाणपत्र प्राप्त कर लिया है, तो आप नीचे दिए गए उदाहरण में प्रस्तुत सभी प्रमाणपत्र के घटकों (श्रृंखला, निजी कुंजी, प्रमाणपत्र) को सूचीबद्ध करने के लिए ls कमांड चला सकते हैं।

# ls -al /usr/local/etc/letsencrypt/live/www.yourdomain.com/

चरण 3: अपाचे टीएलएस प्रमाणपत्र को फ्रीबीएसडी पर अपडेट करें

10। अपनी वेबसाइट पर Let’s Encrypt प्रमाणपत्र जोड़ने के लिए, अपने डोमेन के लिए अपाचे कॉन्फ़िगरेशन फ़ाइल खोलें और जारी किए गए प्रमाणपत्रों के पथ को दर्शाने के लिए निम्न पंक्तियों को अपडेट करें।

# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf

इन TLS प्रमाणपत्र लाइनों को जोड़ें:

SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem"
	SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem"
	SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem"

11। अंत में, अपने डोमेन TLS कॉन्फ़िगरेशन फ़ाइल के लिए साइट्स-सक्षम निर्देशिका के लिए एक सिमलिंक बनाकर, TLS कॉन्फ़िगरेशन फ़ाइल को सक्षम करें, संभव सिंटैक्स त्रुटियों के लिए Apache कॉन्फ़िगरेशन की जाँच करें और, यदि वाक्यविन्यास ठीक है, नीचे दिए गए आदेशों को जारी करके अपाचे डेमॉन को पुनरारंभ करें।

# ln -sf /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf /usr/local/etc/apache24/sites-enabled/
# apachectl -t
# service apache24 restart

12। अपाचे सेवा HTTPS पोर्ट 443 पर सुन रही है या नहीं, यह जांचने के लिए, httpd नेटवर्क सॉकेट को सूचीबद्ध करने के लिए निम्न आदेश जारी करें।

# sockstat -4 | grep httpd

13। आप इस बात की पुष्टि करने के लिए HTTPS प्रोटोकॉल के माध्यम से किसी ब्राउज़र से अपने डोमेन पते पर नेविगेट कर सकते हैं कि Let’s Encrypt प्रमाणपत्र सफलतापूर्वक लागू हो गए हैं।

https://www.yourdomain.com

14। कमांड लाइन से जारी किए गए लेटर एनक्रिप्ट के प्रमाण पत्र के बारे में अतिरिक्त जानकारी प्राप्त करने के लिए, निम्नानुसार ओपनसीएल कमांड का उपयोग करें।

# openssl s_client -connect www.yourdomain.com:443

15। यदि आप नीचे दिए गए मोबाइल स्क्रीनशॉट में सचित्र मोबाइल डिवाइस से लेट एनक्रिप्ट एनए द्वारा प्रदान किए गए वैध प्रमाण पत्र के साथ एन्क्रिप्ट किया गया है, तो आप यह भी सत्यापित कर सकते हैं।

बस इतना ही! क्लाइंट अब आपकी वेबसाइट पर सुरक्षित रूप से जा सकते हैं, क्योंकि सर्वर और क्लाइंट के ब्राउज़र के बीच बहने वाला ट्रैफ़िक एन्क्रिप्ट किया गया है। Certbot उपयोगिता से संबंधित अधिक जटिल कार्यों के लिए निम्न लिंक पर जाएँ: https://certbot.eff.org/