লেটস এনক্রিপ্ট ডোমেইনফ্যাক্টরি

CPanel সহ কিছু শেয়ার্ড হোস্টিং প্যাকেজে AutoSSL থাকে না – অথবা শুধুমাত্র উচ্চমূল্যের প্ল্যানগুলিতেই এটি পাওয়া যায়। ফলে, আপনি cPanel ইন্টারফেসের মাধ্যমে একটি বিনামূল্যের Let's Encrypt সার্টিফিকেট ইস্যু করতে পারেন না এবং সমস্ত ডোমেইন একটি সেলফ-সাইন্ড সার্টিফিকেটে আটকে থাকে। ব্রাউজারটি পেজটিকে "নট সিকিউর" হিসেবে দেখায়। এর সমাধান হলো: acme.sh ব্যবহার করে নিজেই সার্টিফিকেটটি সংগ্রহ করুন এবং cPanel UAPI-এর মাধ্যমে এটি ইনস্টল করুন। এটি AutoSSL ছাড়াই স্বয়ংক্রিয়ভাবে রিনিউ হয়ে যাবে।


HTTPS এখন বাধ্যতামূলক; তাই, যখন আপনার নিজের হোস্টিং প্যাকেজে একটি বিনামূল্যের সার্টিফিকেট পাওয়ার সুবিধাজনক কোনো উপায় থাকে না, তখন বিষয়টি আরও বেশি হতাশাজনক হয়ে ওঠে। আপনি যা ভাবেন, তার চেয়েও বেশিবার এমনটা ঘটে – উদাহরণস্বরূপ, কমদামী এন্ট্রি-লেভেল প্যাকেজগুলোর ক্ষেত্রে অথবা প্ল্যান পরিবর্তনের পর, যখন হঠাৎ করেই সার্টিফিকেট অন্তর্ভুক্ত থাকা বন্ধ হয়ে যায়। তবে, শেল-এ মাত্র কয়েকটি কোড লাইনের মাধ্যমেই এই অভাবটি সুন্দরভাবে এবং স্থায়ীভাবে পূরণ করা সম্ভব – সম্পূর্ণ প্রক্রিয়াটি নিচে বর্ণনা করা হলো।

১. SSH এর মাধ্যমে লগ ইন করুন

ssh -p <port> <cpanel-user>@<host>

২. acme.sh ইনস্টল করুন।

curl https://get.acme.sh | sh -s email=du@example.com
source ~/.bashrc

৩. Let's Encrypt-কে CA হিসেবে সেট করুন।

acme.sh --set-default-ca --server letsencrypt

৪. সার্টিফিকেট প্রদান করুন

acme.sh --issue -d example.com -d www.example.com -w ~/public_html

৫. সিপ্যানেলে ইনস্টল করুন

acme.sh --deploy -d example.com --deploy-hook cpanel_uapi

৬. যাচাই করুন

uapi SSL installed_hosts
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \
     | openssl x509 -noout -issuer -dates

হুকটি UAPI-এর মাধ্যমে উপযুক্ত ভার্চুয়াল হোস্টে সার্টিফিকেটটি লিখে দেয়। ডেপ্লয়মেন্ট সেটিংস সেভ করা থাকে – এখন থেকে, মেয়াদ শেষ হওয়ার আগে ক্রন স্বয়ংক্রিয়ভাবে সবকিছু রিনিউ এবং ইনস্টল করবে। ইস্যুকারী "লেটস এনক্রিপ্ট" হওয়া উচিত এবং মেয়াদ শেষ হওয়ার তারিখটি প্রায় ৯০ দিন পরের হওয়া উচিত। যদি পুরোনো, সেলফ-সাইন্ড সার্টিফিকেটটি এখনও দেখা যায়, তবে ব্রাউজারে একটি হার্ড রিলোড করলে সাধারণত সমস্যার সমাধান হয় – আগের সার্টিফিকেটটি হয়তো সাময়িকভাবে ক্যাশড হয়ে আছে।

কিছু হোস্ট তাদের নিজস্ব সিপ্যানেল হুক চালায়। install_ssl এবং এর উত্তরে এইরকম কিছু বলে adminbin Cpanel/hooks2/...: exit 255. acme.sh এখনও "সফলভাবে ডেপ্লয় করা হয়েছে" দেখাচ্ছে – এবং এটি সাধারণত সঠিকই হয়। এই ক্ষেত্রে, প্রকৃত ইনস্টলেশনের কারণে নয়, বরং পরবর্তী কোনো ধাপের কারণে – যেমন হোস্টিং প্রোভাইডারের কোনো অভ্যন্তরীণ নোটিফাই বা সিঙ্ক জব – হুকটি ব্যর্থ হচ্ছে।

উমলাউটযুক্ত ডোমেইনগুলির জন্য, acme.sh সার্টিফিকেটটি অভ্যন্তরীণভাবে পুনিকোড ফর্মে সংরক্ষণ করে (xn--…), যখন হুকের অটো-ম্যাচার ইউনিকোড ফর্মের সাথে তুলনা করে। ফলাফল: "০টির মধ্যে ০টি সাইটে ডেপ্লয় করা হয়েছে" – কিছুই ইনস্টল হয় না। জটিল অংশটি হলো: acme.sh এখানেও "সফল" রিপোর্ট করে, তাই ত্রুটিটি সহজেই এড়িয়ে যাওয়া হয়। সমাধান: সরাসরি পুনিকোড ডোমেইনের সাথে কাজ করুন এবং অটো-ম্যাচিং নিষ্ক্রিয় করুন।:

# Punycode-Form der Domain vorher ermitteln (z. B. via idn-Tool oder Online-Konverter)
acme.sh --issue -d xn--<punycode> -d www.xn--<punycode> -w ~/public_html
export DEPLOY_CPANEL_AUTO_ENABLED='false'
acme.sh --deploy -d xn--<punycode> --deploy-hook cpanel_uapi

SSH অ্যাক্সেস থাকলে আপনার AutoSSL-এর প্রয়োজন নেই: acme.sh সার্টিফিকেটটি ইস্যু করে, যা cpanel_uapi-Hook-টি এটি ইনস্টল করে, এবং এর সাথে থাকা cron job-টি এটিকে স্বয়ংক্রিয়ভাবে আপডেট রাখে। একবার সেট আপ হয়ে গেলে, এই বিনামূল্যের HTTPS পরিষেবাটি নিজে থেকেই অবিরাম চলতে থাকে। যারা শুরুতে এই প্রচেষ্টাটুকু করেন, তারা ভবিষ্যতে প্রতিটি ম্যানুয়াল নবায়নের ঝামেলা থেকে নিজেদের বাঁচান – এবং একটিমাত্র কমান্ডের মাধ্যমে একই অ্যাকাউন্টের যেকোনো অতিরিক্ত ডোমেইনেও এই একই সমাধানটি প্রয়োগ করতে পারেন।

পেছনে