এই টিউটোরিয়ালে আপনি শিখবেন WordPress Multisite-এ কীভাবে একটি SSL সার্টিফিকেট ইনস্টল করবেন। এখানে দুটি অংশ রয়েছে: সার্ভার লেভেলে সার্টিফিকেট ইনস্টল করা (ধরনটি নির্ভর করে আপনার নেটওয়ার্ক সাবডিরেক্টরি, সাবডোমেইন, নাকি আলাদা ডোমেইন ব্যবহার করে তার উপর), তারপর WordPress-এর ভেতর থেকে পুরো নেটওয়ার্কে HTTPS বাধ্যতামূলক করা।
আপনার Multisite-এর জন্য কোন SSL সার্টিফিকেট প্রয়োজন?
WordPress Multisite হলো একটি নেটিভ WordPress ফিচার যা আপনাকে একটি সিঙ্গেল ইনস্টলেশন এবং ড্যাশবোর্ড থেকে একাধিক সাইট তৈরি ও পরিচালনা করতে দেয়। আপনি তিনটি লেআউটের কোনো একটিতে একটি নেটওয়ার্ক সেট আপ করতে পারেন: সাবডিরেক্টরি, সাবডোমেইন, অথবা আলাদা ডোমেইন। লেআউটটি নির্ধারণ করে আপনার কোন সার্টিফিকেট প্রয়োজন, কারণ প্রতিটি ভিন্নভাবে হোস্ট নেম সুরক্ষিত করে। আপনি যদি নিশ্চিত না হন যে আপনার সেটআপের জন্য কোন সার্টিফিকেট উপযুক্ত, তাহলে আপনার প্রজেক্ট এবং বাজেটের জন্য উপযুক্ত পণ্য খুঁজে পেতে আমাদের SSL Wizard ব্যবহার করুন।
সাবডিরেক্টরি হিসেবে Multisite
একটি সাবডিরেক্টরি (যাকে সাবফোল্ডারও বলা হয়) একটি একক ডোমেইনের মধ্যে থাকা একটি পাথ। উদাহরণস্বরূপ:
- yoursite.com/blog
- yoursite.com/store
- yoursite.com/membership
প্রতিটি সাবসাইট একই হোস্ট নেমের অধীনে থাকার কারণে, ওই ডোমেইনের জন্য একটি একক স্ট্যান্ডার্ড SSL সার্টিফিকেট পুরো নেটওয়ার্ক সুরক্ষিত করে। আপনার মূল ডোমেইন যদি ইতিমধ্যেই HTTPS-এ চলে, তাহলে সাবডিরেক্টরি সাইটগুলো স্বয়ংক্রিয়ভাবে কভার হয়ে যায়, কোনো অতিরিক্ত সার্টিফিকেট কেনার প্রয়োজন হয় না।
সাবডোমেইন হিসেবে Multisite
একটি সাবডোমেইন হলো একটি অংশ যা মূল (রুট) ডোমেইনের সামনে বসে। নেটওয়ার্কের অংশগুলো আলাদা করার একটি বাস্তবসম্মত পদ্ধতি হলো সাবডোমেইন। উদাহরণস্বরূপ:
- blog.yoursite.com
- store.yoursite.com
- membership.yoursite.com
সাবডোমেইনে চলা নেটওয়ার্কের জন্য, একটি Wildcard SSL সার্টিফিকেট উপযুক্ত পছন্দ। একটি Wildcard মূল ডোমেইনের সাথে এর অধীনে থাকা অসীম সংখ্যক প্রথম-স্তরের সাবডোমেইনকে একটি সার্টিফিকেটেই সুরক্ষিত করে। আপনি কখনো নতুন সাবসাইট যুক্ত করলে, সার্টিফিকেট পুনরায় ইস্যু না করেই সেগুলো কভার হয়ে যায়।
দ্রষ্টব্য: একটি Wildcard একটি স্তরের সাবডোমেইন কভার করে। *.yoursite.com-এর জন্য একটি সার্টিফিকেট blog.yoursite.com সুরক্ষিত করে, কিন্তু shop.blog.yoursite.com করে না। আপনার নেটওয়ার্কে যদি এই স্তর পর্যন্ত নেস্টেড সাবডোমেইন থাকে, তাহলে সেই স্তরের জন্য আলাদাভাবে পরিকল্পনা করুন।
আলাদা ডোমেইন হিসেবে Multisite
যদি আপনি চান প্রতিটি সাবসাইট তার নিজস্ব কাস্টম ডোমেইন ব্যবহার করুক, তাহলে প্রথমে আপনাকে ডোমেইনগুলো ম্যাপ করতে হবে। সংস্করণ 4.5 থেকে ডোমেইন ম্যাপিং WordPress কোরে অন্তর্ভুক্ত করা হয়েছে, তাই আলাদা কোনো ম্যাপিং প্লাগইনের প্রয়োজন নেই। আপনি Network Admin > Sites > Edit-এর অধীনে সাবসাইট এডিট করে এবং তার Site Address (URL) কাস্টম ডোমেইনে সেট করে একটি ডোমেইন ম্যাপ করতে পারেন (আপনার DNS এবং সার্ভারকে ইতিমধ্যেই সেই ডোমেইনকে নেটওয়ার্কের দিকে নির্দেশ করতে হবে)।
একবার আপনার ডোমেইনগুলো ম্যাপ হয়ে গেলে, একটি মাল্টি-ডোমেইন SSL সার্টিফিকেট দিয়ে সেগুলো সুরক্ষিত করুন। একটি মাল্টি-ডোমেইন সার্টিফিকেট (যাকে SAN সার্টিফিকেটও বলা হয়) ডিফল্টভাবে বেশ কয়েকটি সম্পর্কহীন ডোমেইন কভার করে এবং অনুরোধ করলে অতিরিক্ত Subject Alternative Name গ্রহণ করে, তাই একটি সার্টিফিকেট এবং একটি রিনিউয়ালই পুরো নেটওয়ার্ক সুরক্ষিত করে। এক IP-তে একাধিক HTTPS সাইট হোস্ট করা সার্ভারগুলো প্রতিটি হোস্ট নেমের জন্য সঠিক সার্টিফিকেট উপস্থাপন করতে SNI (Server Name Indication)-এর উপর নির্ভর করে, যা এখনকার সব ব্রাউজার এবং সার্ভার সমর্থন করে।
আপনার সার্ভারে সার্টিফিকেট ইনস্টল করুন
WordPress নিজে সার্টিফিকেট ইনস্টল করে না। আপনি নেটওয়ার্ক চালানো সার্ভার বা হোস্টে এটি ইনস্টল করেন, তারপর WordPress-কে HTTPS-এ পরিবর্তন করেন। সঠিক পদক্ষেপগুলো আপনার এনভায়রনমেন্টের উপর নির্ভর করে:
- ম্যানেজড বা শেয়ার্ড হোস্টিং: আপনার কন্ট্রোল প্যানেলে (cPanel, Plesk, অথবা হোস্টের SSL/TLS স্ক্রিন) সার্টিফিকেট, প্রাইভেট কী এবং CA বান্ডল আপলোড বা পেস্ট করুন। অনেক ম্যানেজড WordPress হোস্ট আপনার জন্য সার্টিফিকেট ইনস্টল এবং রিনিউ করে।
- Apache: পোর্ট 443 VirtualHost-এর ভেতরে আপনার ফুল-চেইন সার্টিফিকেট এবং কী-এর দিকে SSLCertificateFile এবং SSLCertificateKeyFile নির্দেশ করুন। সঠিক ডিরেক্টিভগুলোর জন্য আমাদের ইনস্টল গাইড দেখুন।
- Nginx: 443-এ লিসেন করা সার্ভার ব্লকে ssl_certificate (ফুল চেইন) এবং ssl_certificate_key সেট করুন।
প্রথমে সার্টিফিকেট প্রয়োজন? আমাদের CSR Generator দিয়ে রিকোয়েস্ট তৈরি করুন, অথবা আপনার প্ল্যাটফর্মের জন্য একটি ধাপে ধাপে CSR টিউটোরিয়াল অনুসরণ করুন। Certificate Authority ফাইলগুলো ইস্যু করার পরে এবং আপনি সেগুলো ইনস্টল করার পরে, এগিয়ে যাওয়ার আগে আমাদের SSL Checker দিয়ে নিশ্চিত করুন যে সার্টিফিকেট লাইভ রয়েছে।
Multisite নেটওয়ার্কে HTTPS সক্রিয় করুন
সার্ভারে সার্টিফিকেট ইনস্টল করার পর, শেষ পদক্ষেপ হলো WordPress-কে প্রতিটি সাইট HTTPS-এর মাধ্যমে সার্ভ করানো। শুরু করার আগে আপনার ডেটাবেস এবং ফাইল ব্যাকআপ নিন, কারণ এই পরিবর্তনগুলো পুরো নেটওয়ার্কের সাইট URL-কে প্রভাবিত করে।
পদক্ষেপ ১: সাইট এবং হোম URL https-এ আপডেট করুন
Network Admin > Sites-এ, প্রতিটি সাবসাইট খুলুন, Settings ট্যাবে যান, এবং Siteurl ও Home http থেকে https-এ পরিবর্তন করুন। মূল সাইটের জন্য আপনি এটি তার নিজস্ব Settings > General স্ক্রিনের অধীনেও (WordPress Address এবং Site Address ফিল্ড) সেট করতে পারেন। এডিট করার পর প্রতিটি সাইট সেভ করুন।
পদক্ষেপ ২: অ্যাডমিন এবং লগইন-এর জন্য HTTPS বাধ্যতামূলক করুন
নেটওয়ার্ক রুটে wp-config.php এডিট করুন এবং এই লাইনটি এই কমেন্টের উপরে যুক্ত করুন /* That’s all, stop editing! Happy publishing. */:
define( 'FORCE_SSL_ADMIN', true );
এটি পুরো নেটওয়ার্কে প্রতিটি লগইন এবং অ্যাডমিন সেশন HTTPS-এর মাধ্যমে পাঠায়। সার্ভারে সার্টিফিকেট কাজ করার পরেই এটি যুক্ত করুন, অন্যথায় অ্যাডমিন এরিয়া অ্যাক্সেসযোগ্য না-ও হতে পারে।
নেটওয়ার্কটি যদি এমন একটি রিভার্স প্রক্সি বা লোড ব্যালান্সারের পেছনে থাকে যা SSL টার্মিনেট করে (ম্যানেজড হোস্টিং এবং CDN-এ প্রচলিত), তাহলে WordPress HTTPS সনাক্ত করতে পারে না এবং রিডাইরেক্টে লুপ করতে পারে। এমন ক্ষেত্রে, WordPress-কে ফরওয়ার্ডেড প্রোটোকল হেডার বিশ্বাস করতে বলার জন্য একই লাইনের ঠিক উপরে এটি যুক্ত করুন:
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && strpos( $_SERVER['HTTP_X_FORWARDED_PROTO'], 'https' ) !== false ) {
$_SERVER['HTTPS'] = 'on';
}
পদক্ষেপ ৩: ডেটাবেসে হার্ডকোডেড http URL প্রতিস্থাপন করুন
বিদ্যমান পোস্ট, মেনু এবং সেটিংসে প্রায়ই সম্পূর্ণ http লিঙ্ক সংরক্ষিত থাকে। একটি সার্চ-অ্যান্ড-রিপ্লেস চালান যাতে সেগুলো https হয়ে যায়। সবচেয়ে নিরাপদ টুল হলো WP-CLI, যা সিরিয়ালাইজড ডেটা ঠিকভাবে পরিচালনা করে এবং পুরো নেটওয়ার্ক টার্গেট করতে পারে:
wp search-replace 'http://yoursite.com' 'https://yoursite.com' --network --skip-columns=guid --dry-run
ড্রাই-রান আউটপুট রিভিউ করুন, তারপর পরিবর্তন প্রয়োগ করতে –dry-run ছাড়া কমান্ডটি আবার চালান। এমন একটি নেটওয়ার্কে যা আলাদা বা সাবডোমেইন সাইট ব্যবহার করে, সেখানে প্রতিটি স্বতন্ত্র ডোমেইনের জন্য এটি পুনরাবৃত্তি করুন। আপনার যদি WP-CLI অ্যাক্সেস না থাকে, তাহলে Better Search Replace-এর মতো একটি মেইনটেইনড প্লাগইন ড্যাশবোর্ড থেকে একই কাজ করে। guid কলামটি স্পর্শ করবেন না, কারণ এটি পরিবর্তন করলে ফিড রিডারগুলো প্রভাবিত হতে পারে।
পদক্ষেপ ৪: যাচাই করুন এবং (ঐচ্ছিকভাবে) রিডাইরেক্ট করুন
প্রতিটি সাইট লোড করুন এবং নিশ্চিত করুন প্যাডলক দেখাচ্ছে এবং ব্রাউজার কনসোলে কোনো মিক্সড-কনটেন্ট সতর্কতা নেই। Really Simple SSL (যা Multisite সমর্থন করে)-এর মতো একটি ফোর্স-HTTPS প্লাগইন অবশিষ্ট কোনো অসুরক্ষিত রিকোয়েস্ট ধরতে পারে এবং আপনার জন্য HTTP থেকে HTTPS রিডাইরেক্ট যুক্ত করতে পারে। আপনি আপনার Apache বা Nginx কনফিগে সার্ভার লেভেলেও রিডাইরেক্ট পরিচালনা করতে পারেন। একটি সাইট HTTPS-এ স্থানান্তরের সম্পূর্ণ ওয়াকথ্রুর জন্য, HTTP থেকে HTTPS-এ স্যুইচ করা সংক্রান্ত আমাদের গাইড দেখুন।
এখন আপনার WordPress Multisite নেটওয়ার্ক প্রতিটি সাইট HTTPS-এর মাধ্যমে সার্ভ করে।
সচরাচর জিজ্ঞাসিত প্রশ্ন
এটি নেটওয়ার্ক লেআউটের উপর নির্ভর করে। একটি সাবডিরেক্টরি নেটওয়ার্কের জন্য একটি স্ট্যান্ডার্ড সিঙ্গেল-ডোমেইন সার্টিফিকেট প্রয়োজন। একটি সাবডোমেইন নেটওয়ার্কের জন্য মূল ডোমেইন এবং তার সাবডোমেইন কভার করতে একটি Wildcard সার্টিফিকেট প্রয়োজন। আলাদা (ম্যাপ করা) ডোমেইনের একটি নেটওয়ার্কের জন্য প্রতিটি ডোমেইন তালিকাভুক্ত করা একটি মাল্টি-ডোমেইন (SAN) সার্টিফিকেট প্রয়োজন।
হ্যাঁ, যতক্ষণ পর্যন্ত সার্টিফিকেটের ধরন লেআউটের সাথে মেলে। একটি একক স্ট্যান্ডার্ড সার্টিফিকেট একটি সাবডিরেক্টরি নেটওয়ার্ক কভার করে, একটি একক Wildcard একটি সাবডোমেইন নেটওয়ার্ক কভার করে, এবং প্রতিটি ডোমেইনকে SAN হিসেবে তালিকাভুক্ত করে একটি একক মাল্টি-ডোমেইন সার্টিফিকেট আলাদা ডোমেইনের একটি নেটওয়ার্ক কভার করে।
সার্ভারে। সার্টিফিকেট, প্রাইভেট কী এবং CA বান্ডল আপনার হোস্টের কন্ট্রোল প্যানেলের মাধ্যমে বা সরাসরি Apache বা Nginx-এ ইনস্টল করা হয়। WordPress-এর নিজের কেবল সাইট URL https-এ পরিবর্তন করা প্রয়োজন এবং সার্টিফিকেট লাইভ হয়ে গেলে wp-config.php-এ FORCE_SSL_ADMIN সেটিং যুক্ত করা প্রয়োজন।
Network Admin > Sites-এ প্রতিটি সাইটের Siteurl এবং Home https-এ আপডেট করুন, wp-config.php-এ define( 'FORCE_SSL_ADMIN', true ); যুক্ত করুন, এবং ডেটাবেসে যেকোনো হার্ডকোডেড http লিঙ্ক https-এ রূপান্তর করতে একটি সার্চ-অ্যান্ড-রিপ্লেস চালান। Multisite সমর্থন করে এমন একটি ফোর্স-HTTPS প্লাগইন রিডাইরেক্ট যুক্ত করতে পারে এবং অবশিষ্ট মিক্সড কনটেন্ট ধরতে পারে।
না। সংস্করণ 4.5 থেকে ডোমেইন ম্যাপিং WordPress কোরের একটি অংশ। আপনি Network Admin > Sites > Edit-এর অধীনে সাবসাইটের Site Address (URL) এডিট করে একটি কাস্টম ডোমেইন ম্যাপ করতে পারেন, তাই পুরনো MU Domain Mapping প্লাগইনের আর প্রয়োজন নেই।
আজ অর্ডার করার সময় SSL শংসাপত্রে 10% সংরক্ষণ করুন!
দ্রুত ইস্যু, শক্তিশালী এনক্রিপশন, 99.99% ব্রাউজার বিশ্বাস, নিবেদিত সমর্থন, এবং 25 দিনের অর্থ ফেরত গ্যারান্টি। কুপন কোড: SAVE10


