এই গাইডে, আপনি শিখবেন কীভাবে CentOS-এ SSL সার্টিফিকেট ইনস্টল করবেন এবং এর RHEL-পরিবারের উত্তরসূরীদের (AlmaLinux, Rocky Linux, এবং CentOS Stream) উপর Apache httpd ওয়েব সার্ভার ব্যবহার করে।
আমরা একটি ভিডিওও রেকর্ড করেছি যা আপনাকে সম্পূর্ণ প্রক্রিয়াটি ধাপে ধাপে দেখায়। যদি আপনি লেখা সংস্করণ পছন্দ করেন, নিচে পড়তে থাকুন।
একটি CSR কোড তৈরি করুন
একটি SSL সার্টিফিকেটের জন্য আবেদন করার সময়, আপনি প্রথমে একটি CSR (Certificate Signing Request) তৈরি করেন এবং এটি Certificate Authority-তে পাঠান। CSR হলো এমন একটি লেখার ব্লক যাতে আপনার যোগাযোগ এবং ডোমেইনের বিস্তারিত তথ্য থাকে, এবং এটি একই সময়ে তৈরি করা একটি প্রাইভেট কী-এর সাথে জোড়া থাকে। আপনার কাছে দুটি বিকল্প রয়েছে:
- স্বয়ংক্রিয়ভাবে CSR তৈরি করতে আমাদের CSR Generator ব্যবহার করুন।
- CentOS-এ একটি CSR কীভাবে তৈরি করবেন সম্পর্কে আমাদের ধাপে ধাপে টিউটোরিয়াল অনুসরণ করুন।
চেকআউটের সময় CSR-টি Certificate Authority-তে জমা দিন। একবার CA এটি যাচাই করলে এবং আপনার সার্টিফিকেট ইস্যু করলে, নিচের ইনস্টলেশন প্রক্রিয়ার সাথে এগিয়ে যান।
CentOS / RHEL (Apache)-এ একটি SSL সার্টিফিকেট ইনস্টল করুন
সংস্করণ সম্পর্কে একটি সতর্কতা: CentOS Linux 8 এর End of Life ছিল ৩১শে ডিসেম্বর, ২০২১, এবং CentOS Linux 7 এর EOL ছিল ৩০শে জুন, ২০২৪। প্রোডাকশনের জন্য, একটি সমর্থিত RHEL-পরিবারের ডিস্ট্রিবিউশন ব্যবহার করুন: RHEL 8/9/10, AlmaLinux, Rocky Linux, বা CentOS Stream। এগুলো সবাই একই Apache httpd কাঠামো শেয়ার করে, তাই নিচের ধাপগুলো এদের প্রতিটির ক্ষেত্রে প্রযোজ্য।
শুরু করার আগে
যাচাইকরণের পর, আপনার Certificate Authority আপনাকে ইমেইলে সার্টিফিকেট ফাইলগুলো পাঠায়। নিশ্চিত করুন যে আপনার কাছে এই তিনটি আলাদা ফাইল প্রস্তুত আছে:
- yourdomain.crt, আপনার প্রাথমিক SSL সার্টিফিকেট।
- yourdomain.ca-bundle, ইন্টারমিডিয়েট সার্টিফিকেটগুলো (CA বান্ডল)।
- yourdomain.key, আপনি CSR দিয়ে তৈরি করা প্রাইভেট কী।
গুরুত্বপূর্ণ: প্রাইভেট কীটি কখনো সার্টিফিকেট চেইনের সাথে বান্ডল করবেন না। কী-টি তার নিজস্ব ফাইলে থাকবে, যা শুধুমাত্র root দ্বারা পড়া যায়।
ধাপ ১: TLS সমর্থন ইনস্টল করুন (mod_ssl)
mod_ssl ইনস্টল করুন, যা Apache-তে TLS সমর্থন যোগ করে এবং /etc/httpd/conf.d/ssl.conf-এ একটি ডিফল্ট TLS কনফিগ তৈরি করে:
sudo dnf install -y mod_ssl
পুরনো সিস্টেমে যেগুলো এখনও yum প্যাকেজ ম্যানেজার ব্যবহার করে, পরিবর্তে sudo yum install -y mod_ssl চালান।
ধাপ ২: আপনার SSL ফাইলগুলো স্থাপন করুন
প্রাইভেট কী-টি /etc/pki/tls/private/-তে কপি করুন এবং এর পারমিশন এমনভাবে সীমাবদ্ধ করুন যাতে শুধুমাত্র root এটি পড়তে পারে:
sudo cp yourdomain.key /etc/pki/tls/private/
sudo chown root:root /etc/pki/tls/private/yourdomain.key
sudo chmod 600 /etc/pki/tls/private/yourdomain.key
এরপর, আপনার সার্টিফিকেট এবং CA বান্ডলকে একত্রিত করে সম্পূর্ণ চেইন ফাইল তৈরি করুন এবং এটি /etc/pki/tls/certs/-এ স্থাপন করুন:
cat yourdomain.crt yourdomain.ca-bundle
| sudo tee /etc/pki/tls/certs/yourdomain-fullchain.crt > /dev/null
সম্পূর্ণ চেইন ফাইলে শুধুমাত্র পাবলিক সার্টিফিকেট এবং ইন্টারমিডিয়েট চেইন থাকা উচিত, কখনো প্রাইভেট কী নয়।
ধাপ ৩: Apache TLS ভার্চুয়াল হোস্ট কনফিগার করুন
আপনি mod_ssl দ্বারা তৈরি ডিফল্ট /etc/httpd/conf.d/ssl.conf এডিট করতে পারেন, অথবা (আরও পরিষ্কার উপায়ে) আপনার সাইটের জন্য একটি নিবেদিত ফাইল তৈরি করতে পারেন, যেমন /etc/httpd/conf.d/yourdomain.conf। এটি একটি টেক্সট এডিটর দিয়ে খুলুন:
sudo nano /etc/httpd/conf.d/yourdomain.conf
একটি পোর্ট ৮০ ভার্চুয়াল হোস্ট যুক্ত করুন যা সমস্ত ট্র্যাফিককে HTTPS-তে রিডাইরেক্ট করে, তারপর সুরক্ষিত পোর্ট ৪৪৩ ভার্চুয়াল হোস্ট যাতে আপনার SSL নির্দেশগুলো থাকে:
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/yourdomain.com
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/yourdomain-fullchain.crt
SSLCertificateKeyFile /etc/pki/tls/private/yourdomain.key
</VirtualHost>
- SSLCertificateFile, আপনার সম্পূর্ণ চেইন ফাইল (সার্টিফিকেট + ইন্টারমিডিয়েট)। Apache 2.4.8 এবং তার পরের সংস্করণে, এই একটি নির্দেশ পুরনো এবং অবচিত SSLCertificateChainFile-এর জায়গা নেয়।
- SSLCertificateKeyFile, আপনি CSR দিয়ে তৈরি করা প্রাইভেট কী।
ডিফল্ট হোস্ট সম্পর্কে দ্রষ্টব্য: mod_ssl-এর /etc/httpd/conf.d/ssl.conf নিজস্ব <VirtualHost _default_:443> সরবরাহ করে একটি সেলফ-সাইনড সার্টিফিকেট সহ। যখন আপনি উপরের মতো একটি প্রতি-সাইট *:443 হোস্ট যোগ করেন, যে অনুরোধগুলো আপনার ServerName-এর সাথে মিলে যায় সেগুলো আপনার সার্টিফিকেট ব্যবহার করে, কিন্তু অমিলিত HTTPS অনুরোধগুলো (উদাহরণস্বরূপ, সার্ভারটিকে তার IP ঠিকানার মাধ্যমে অ্যাক্সেস করলে) এখনো সেই ডিফল্ট সেলফ-সাইনড হোস্টে ফলব্যাক করে। আপনি যদি সেই ফলব্যাক না চান, তাহলে ssl.conf-এ <VirtualHost _default_:443> ব্লকটি কমেন্ট আউট করুন বা এটি আপনার নিজের সার্টিফিকেটের দিকে নির্দেশ করুন।
TLS হার্ডেনিং সম্পর্কে দ্রষ্টব্য: RHEL 8 এবং তার পরের সংস্করণে Apache সিস্টেম-ব্যাপী ক্রিপ্টো পলিসি অনুসরণ করে, যা ইতিমধ্যেই পুরনো প্রোটোকলগুলো নিষ্ক্রিয় করে দেয়। সম্পূর্ণ সার্ভার জুড়ে পলিসি সেট করতে, sudo update-crypto-policies --set DEFAULT চালান (বা কঠোর সেটিংসের জন্য FUTURE)। আপনি যদি এর পরিবর্তে প্রতি ভার্চুয়াল হোস্টে প্রোটোকল নির্দিষ্ট করতে চান, তাহলে পোর্ট ৪৪৩ ব্লকের ভেতরে SSLProtocol -all +TLSv1.2 +TLSv1.3 যুক্ত করুন।
ধাপ ৪: আপনার Apache কনফিগারেশন পরীক্ষা করুন
রিলোড করার আগে সবসময় সিন্ট্যাক্স পরীক্ষা করুন, কারণ একটি ছোট টাইপো সাইটকে অফলাইন করে দিতে পারে:
sudo apachectl configtest
আপনার Syntax OK দেখা উচিত। (কমান্ড sudo httpd -t একই কাজ করে।) এগিয়ে যাওয়ার আগে রিপোর্ট করা কোনো ত্রুটি ঠিক করুন।
ধাপ ৫: Apache পুনরায় চালু করুন
httpd সার্ভিস রিলোড করে পরিবর্তনগুলো প্রয়োগ করুন (একটি রিলোড লাইভ সংযোগ বন্ধ না করেই নতুন কনফিগ সক্রিয় করে):
sudo systemctl reload httpd
httpd এখনো চলমান না থাকলে, sudo systemctl enable --now httpd দিয়ে এটি শুরু করুন। আপনার ওয়েবসাইট এখন HTTPS-এর মাধ্যমে লাইভ হওয়া উচিত। ফলাফল যাচাই করতে এবং একটি তাৎক্ষণিক স্ট্যাটাস রিপোর্ট পেতে, আমাদের SSL Checker ব্যবহার করুন।
পুরনো CentOS (৭ এবং তার আগের) এর জন্য দ্রষ্টব্য
CentOS Linux 7, 6, এবং 8 সবগুলোই End of Life অতিক্রম করেছে এবং আর কোনো সিকিউরিটি আপডেট পায় না, তাই যখন সম্ভব হয় তখন একটি সমর্থিত RHEL-পরিবারের ডিস্ট্রিবিউশনে মাইগ্রেট করুন। যদি আপনাকে একটি লিগ্যাসি সার্ভারে কাজ করতেই হয়, প্রক্রিয়াটি উপরের মতোই, দুটি পার্থক্য সহ:
- প্যাকেজ ম্যানেজার: CentOS 7 এবং 6 dnf-এর পরিবর্তে yum ব্যবহার করে।
rpm -qa | grep mod_sslদিয়ে চেক করুন mod_ssl ইতিমধ্যেই ইনস্টল করা আছে কিনা, এবং না থাকলে,sudo yum install -y mod_sslদিয়ে এটি ইনস্টল করুন। - Apache 2.4.8-এর চেয়ে পুরনো: শুধুমাত্র খুবই পুরনো বিল্ড 2.4.8-এর আগে ছিল। সেখানে, সার্টিফিকেট এবং চেইনকে আলাদা ফাইলে রাখুন এবং একটি তৃতীয় নির্দেশ, SSLCertificateChainFile, যুক্ত করুন যা CA বান্ডল-এর দিকে নির্দেশ করে (আপনার সার্টিফিকেটের দিকে নয়):
SSLCertificateFile /etc/pki/tls/certs/yourdomain.crt
SSLCertificateKeyFile /etc/pki/tls/private/yourdomain.key
SSLCertificateChainFile /etc/pki/tls/certs/yourdomain.ca-bundle
Apache 2.4.8 এবং তার পরের সংস্করণে (যা প্রতিটি বর্তমানে সমর্থিত রিলিজকে কভার করে), পরিবর্তে ধাপ ৩-এ দেখানো সহজ একক সম্পূর্ণ চেইন SSLCertificateFile ব্যবহার করুন।
CentOS-এর জন্য SSL সার্টিফিকেট কোথায় কিনবেন?
আপনার CentOS সার্ভারের জন্য SSL সার্টিফিকেট কেনার সেরা জায়গা হলো একটি সুনামসম্পন্ন SSL রিসেলার, যেমন SSL Dragon। আমাদের দাম বাজারের সবচেয়ে কম দামের মধ্যে একটি, এবং আমরা আমাদের সম্পূর্ণ SSL পণ্যের পরিসরে নিয়মিত ছাড় এবং দুর্দান্ত অফার প্রদান করি, যা অসাধারণ কাস্টমার সাপোর্ট দ্বারা সমর্থিত। আমাদের সকল সার্টিফিকেট CentOS এবং এর RHEL-পরিবারের উত্তরসূরীদের সাথে সামঞ্জস্যপূর্ণ।
SSL Dragon আপনার সংবেদনশীল ডেটার সুরক্ষার দায়িত্ব নেয়, যাতে আপনার ওয়েবসাইট বা ব্যবসা অনলাইনে সমৃদ্ধ হতে পারে।
সচরাচর জিজ্ঞাসিত প্রশ্নাবলী
OpenSSL দিয়ে আপনার সাইটে সংযোগ করুন এবং এটি যে সার্টিফিকেট পরিবেশন করে তা পড়ুন:echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
একটি সার্টিফিকেট ইনস্টল করা থাকলে, এটি এর ইস্যুকারী এবং বৈধতার তারিখগুলো প্রিন্ট করে। ডিস্কে থাকা একটি সার্টিফিকেট ফাইল পরিদর্শন করার জন্য পরিবর্তে, openssl x509 -text -noout -in certificate.crt চালান। আপনি sudo apachectl -S দিয়ে Apache-এর সক্রিয় ভার্চুয়াল হোস্টের তালিকাও দেখতে পারেন, বা আপনার সাইট ব্রাউজারে খুলে প্যাডলক চেক করতে পারেন।
প্রথাগতভাবে, সার্টিফিকেটগুলো /etc/pki/tls/certs/-এ থাকে এবং প্রাইভেট কীগুলো /etc/pki/tls/private/-এ থাকে। এগুলো RHEL-পরিবারের ডিফল্ট; আপনি অন্য স্থানও ব্যবহার করতে পারেন যতক্ষণ আপনার ভার্চুয়াল হোস্ট সেগুলোর দিকে নির্দেশ করে।
TLS মডিউলটি তার ডিফল্ট /etc/httpd/conf.d/ssl.conf-এ ইনস্টল করে, এবং প্রধান Apache কনফিগ হলো /etc/httpd/conf/httpd.conf। আপনি আপনার ভার্চুয়াল হোস্টগুলো ssl.conf-এ যুক্ত করতে পারেন, কিন্তু /etc/httpd/conf.d/yourdomain.conf-এর মতো একটি প্রতি-সাইট ফাইল তৈরি করা আরও পরিষ্কার উপায়। /etc/httpd/conf.d/-এ কোনো .conf ফাইল স্বয়ংক্রিয়ভাবে লোড হয়। Apache লগগুলো /var/log/httpd/-এ থাকে।
Apache 2.4.8 এবং তার পরের সংস্করণে (প্রতিটি বর্তমানে সমর্থিত RHEL-পরিবারের রিলিজ), হ্যাঁ: আপনার সার্টিফিকেট এবং CA বান্ডলকে একটি সম্পূর্ণ চেইন ফাইলে একত্রিত করুন এবং SSLCertificateFile-কে সেটির দিকে নির্দেশ করুন। আলাদা SSLCertificateChainFile নির্দেশটি অবচিত এবং শুধুমাত্র Apache 2.4.8-এর চেয়ে পুরনো বিল্ডে প্রয়োজন।
OpenSSL CentOS এবং প্রতিটি অন্যান্য প্রধান Linux ডিস্ট্রিবিউশনে পূর্ব-ইনস্টল করা থাকে, তাই আপনাকে সাধারণত এটি ইনস্টল করার প্রয়োজন নেই। এটি অনুপস্থিত থাকলে, sudo dnf install -y openssl দিয়ে এটি যুক্ত করুন (বা CentOS 7 এবং তার আগের সংস্করণে sudo yum install -y openssl)। OpenSSL এবং তার কমান্ড লাইন সম্পর্কে আরও জানুন।
সংক্ষিপ্তসার
Apache সহ CentOS বা RHEL-এ একটি SSL সার্টিফিকেট ইনস্টল করার প্রক্রিয়া হলো mod_ssl ইনস্টল করা, আপনার প্রাইভেট কী এবং সম্পূর্ণ চেইন সার্টিফিকেট /etc/pki/tls/-এর অধীনে স্থাপন করা, /etc/httpd/conf.d/-এ <VirtualHost *:443> ব্লক কনফিগার করা, sudo apachectl configtest দিয়ে পরীক্ষা করা, এবং sudo systemctl reload httpd দিয়ে রিলোড করা। প্রথমে একটি সার্টিফিকেট প্রয়োজন? আমাদের SSL সার্টিফিকেটগুলো ব্রাউজ করুন।
আজ অর্ডার করার সময় SSL শংসাপত্রে 10% সংরক্ষণ করুন!
দ্রুত ইস্যু, শক্তিশালী এনক্রিপশন, 99.99% ব্রাউজার বিশ্বাস, নিবেদিত সমর্থন, এবং 25 দিনের অর্থ ফেরত গ্যারান্টি। কুপন কোড: SAVE10

