কীভাবে এসএসএল দিয়ে অ্যাপাচি সুরক্ষিত করবেন এবং ফ্রিবিএসডি-তে এনক্রিপ্ট করুন


এই টিউটোরিয়ালে আমরা শিখব যে কীভাবে ফ্রিবিএসডি ১১.x এ লেটস এনক্রিপ্ট দ্বারা প্রদত্ত টিএলএস/এসএসএল শংসাপত্রগুলি দিয়ে অ্যাপাচি এইচটিটিপি সার্ভারটি সুরক্ষিত করা যায়। লেটস'র এনক্রিপ্টের জন্য শংসাপত্র পুনর্নবীকরণের প্রক্রিয়াটি কীভাবে স্বয়ংক্রিয় করা যায় তাও আমরা কভার করব।

সুরক্ষা প্রদানের জন্য টিএলএস/এসএসএল শংসাপত্রগুলি অ্যাপাচি ওয়েব সার্ভার দ্বারা শেষ নোডগুলির মধ্যে যোগাযোগ এনক্রিপ্ট করার জন্য বা সার্ভার এবং ক্লায়েন্টের মধ্যে আরও সাধারণ ব্যবহার করা হয়। লেটস এনক্রিপ্টটি সার্টিবোট কমান্ড লাইন ইউটিলিটি সরবরাহ করে, এটি এমন একটি অ্যাপ্লিকেশন যা আপনাকে বিনামূল্যে বিশ্বস্ত শংসাপত্রগুলি পাওয়ার উপায়টিকে সহজ করতে পারে।

  1. ফ্রিবিএসডি 11.x এর ইনস্টলেশন
  2. ফ্রিবিএসডি ইনস্টলেশনের পরে 10 টি জিনিস
  3. ফ্রিবিএসডি-তে অ্যাপাচি, মারিয়াডিবি এবং পিএইচপি কীভাবে ইনস্টল করবেন

পদক্ষেপ 1: ফ্রিবিএসডি-তে অ্যাপাচি এসএসএল কনফিগার করুন

১. সার্টিবোট ইউটিলিটি ইনস্টল করার আগে এবং অ্যাপাচি-র জন্য টিএসএল কনফিগারেশন ফাইল তৈরি করার আগে, প্রথমে নীচের কমান্ডগুলি জারি করে অ্যাপাচি রুট কনফিগারেশন ডিরেক্টরিতে দুটি সাইট-উপলভ্য এবং সাইট-সক্ষম নামের দুটি স্বতন্ত্র ডিরেক্টরি তৈরি করুন।

এই দুটি ডিরেক্টরির উদ্দেশ্য হ'ল প্রতিবার আমরা একটি নতুন ভার্চুয়াল হোস্ট যুক্ত করার সময় মূল অ্যাপাচি httpd.conf কনফিগারেশন ফাইলটি সংশোধন না করে সিস্টেমে ভার্চুয়াল হোস্টিং কনফিগারেশন পরিচালনার সুবিধে করা।

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

২. আপনি উভয় ডিরেক্টরি তৈরির পরে, টেক্সট সম্পাদকের সাহায্যে অ্যাপাচি httpd.conf ফাইলটি খুলুন এবং নীচের চিত্রের মতো ফাইলের শেষের নিকটে নিম্নলিখিত লাইনটি যুক্ত করুন।

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

নিম্নলিখিত লাইন যুক্ত করুন:

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

৩. এরপরে, নিম্নলিখিত বিষয়বস্তু দিয়ে মডিউল.ড ডিরেক্টরিতে 020_mod_ssl.conf নামে একটি নতুন ফাইল তৈরি করে আপাচের জন্য টিএলএস মডিউল সক্ষম করুন।

# 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

৪. এখন, /usr/local/etc/apache24/httpd.conf ফাইল থেকে এসএসএল মডিউলটি নিচের চিত্রের মতো নীচের লাইনের শুরু থেকে হ্যাশট্যাগটি সরিয়ে নিঃশর্ত করুন:

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>

ম্যাক্রে নিশ্চিত যে আপনি সেই অনুযায়ী সার্ভারনাম, সার্ভারএলিয়াস, ত্রুটিলগ, কাস্টমলগ বিবৃতি থেকে ডোমেন নাম ভেরিয়েবল প্রতিস্থাপন করেছেন।

পদক্ষেপ 2: ফ্রিবিএসডি তে লেটস এনক্রিপ্ট ইনস্টল করুন

The. পরবর্তী পদক্ষেপে লেটস এনক্রিপ্ট দ্বারা সরবরাহিত সার্টিবোট ইউটিলিটি ইনস্টল করার জন্য নিম্নলিখিত কমান্ডটি জারি করুন যা আপনার ডোমেনের জন্য অ্যাপাচি টিএসএল বিনামূল্যে শংসাপত্রগুলি ব্যবহার করতে ব্যবহৃত হবে।

Certbot ইনস্টল করার সময় আপনার স্ক্রিনে প্রম্পটগুলির একটি সিরিজ প্রদর্শিত হবে। সার্টিবোট ইউটিলিটি কনফিগার করতে নীচের স্ক্রিনশটটি ব্যবহার করুন। এছাড়াও, আপনার মেশিনের সংস্থানগুলির উপর নির্ভর করে সার্টিবোট ইউটিলিটি সংকলন এবং ইনস্টল করতে কিছু সময় লাগতে পারে।

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

The. সংকলন প্রক্রিয়া শেষ হওয়ার পরে, সেরিটবট ইউটিলিটি এবং সার্টবোট প্রয়োজনীয় নির্ভরতা আপডেট করার জন্য নীচের কমান্ডটি জারি করুন।

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

8. আপনার ডোমেনের জন্য একটি শংসাপত্র তৈরি করতে, নীচের চিত্রিত হিসাবে কমান্ডটি জারি করুন। -w পতাকা ব্যবহার করে আপনার ওয়েবসাইট ফাইলগুলি ফাইল সিস্টেমে (আপনার ডোমেন কনফিগারেশন ফাইল থেকে ডকুমেন্টরোট নির্দেশিকা) সঠিক ওয়েব্রোট অবস্থান সরবরাহ করেছেন তা নিশ্চিত করুন। আপনার যদি একাধিক সাবডোমেন থাকে তবে সেগুলিকে -d পতাকাটি যুক্ত করুন।

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

শংসাপত্রটি পাওয়ার সময়, শংসাপত্র পুনর্নবীকরণের জন্য একটি ইমেল ঠিকানা সরবরাহ করুন, লেটের এনক্রিপ্ট শর্তাদি এবং শর্তাবলীর সাথে সম্মত হওয়ার জন্য একটি চাপুন এবং ইমেল ঠিকানাটি ভাগ না করার জন্য n ভাগ করুন Let

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: ফ্রিবিএসডি-তে অ্যাপাচি টিএলএস শংসাপত্রগুলি আপডেট করুন

১০. আপনার ওয়েবসাইটে লেটস এনক্রিপ্ট শংসাপত্র যুক্ত করতে, আপনার ডোমেনের জন্য অ্যাপাচি কনফিগারেশন ফাইলটি খুলুন এবং জারি হওয়া শংসাপত্রগুলির পথ প্রতিফলিত করতে নিম্নলিখিত লাইনগুলি আপডেট করুন।

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

এই টিএলএস শংসাপত্র লাইন যুক্ত করুন:

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"

১১. অবশেষে, টিএলএস কনফিগারেশন ফাইলটি সক্ষম করুন, আপনার ডোমেন টিএলএস কনফিগারেশন ফাইলের জন্য সাইট-সক্ষম ডিরেক্টরিতে একটি সিমিলিংক তৈরি করে, সম্ভাব্য বাক্য গঠন ত্রুটির জন্য অ্যাপাচি কনফিগারেশন পরীক্ষা করুন এবং যদি সিনট্যাক্স ঠিক আছে, নীচের কমান্ডগুলি জারি করে অ্যাপাচি ডিমন পুনরায় চালু করুন।

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

১২. এইচটিপিএস পোর্ট ৪৪৩ এ অ্যাপাচি পরিষেবা শুনছে কিনা তা পরীক্ষা করার জন্য, httpd নেটওয়ার্ক সকেটের তালিকা তৈরি করতে নিম্নলিখিত কমান্ডটি জারি করুন।

# sockstat -4 | grep httpd

13. আপনি এইচটিটিপিএস প্রোটোকলের মাধ্যমে একটি ব্রাউজার থেকে আপনার ডোমেন ঠিকানায় নেভিগেট করতে পারেন যাতে লেটের এনক্রিপ্ট শংসাপত্রগুলি সফলভাবে প্রয়োগ করা হয়েছে তা নিশ্চিত করতে।

https://www.yourdomain.com

14. কমান্ড লাইন থেকে জারি করা যাক এর এনক্রিপ্ট শংসাপত্র সম্পর্কে অতিরিক্ত তথ্য পেতে, নীচে ওপেনসেল কমান্ডটি ব্যবহার করুন।

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

15. নীচের মোবাইলের স্ক্রিনশটে চিত্রিত হিসাবে কোনও মোবাইল ডিভাইস থেকে লেটস এনক্রিপ্ট সিএ সরবরাহ করা বৈধ শংসাপত্রের সাথে ট্র্যাফিক এনক্রিপ্ট করা হয়েছে কিনা তাও আপনি যাচাই করতে পারেন।

এখানেই শেষ! ক্লায়েন্টগুলি এখন নিরাপদে আপনার ওয়েবসাইটটিতে যেতে পারে, কারণ সার্ভার এবং ক্লায়েন্টের ব্রাউজারের মধ্যে প্রবাহিত ট্র্যাফিক এনক্রিপ্ট করা হয়েছে। Certbot ইউটিলিটি সম্পর্কিত আরও জটিল কাজের জন্য নিম্নলিখিত লিঙ্কটি দেখুন: https://certbot.eff.org/