Skip to content
VDS · ওয়েবসাইট ও ওয়েব সার্ভার

বিনামূল্যে Let's Encrypt সার্টিফিকেট

certbot দিয়ে VPS-এ কীভাবে HTTPS সার্টিফিকেট ইস্যু ও স্বয়ংক্রিয়ভাবে নবায়ন করবেন, যার মধ্যে পোর্ট 80 ইতিমধ্যে ব্যবহৃত থাকার ক্ষেত্রও রয়েছে।

আপডেট: ২৩ আগস্ট, ২০২৬

ব্রাউজার যাতে “Not secure” না দেখায় এবং ফর্ম ও পেমেন্ট আদৌ কাজ করে, সেজন্য আপনার একটি সার্টিফিকেট দরকার। Let's Encrypt বিনামূল্যে ৯০ দিনের জন্য একটি সার্টিফিকেট দেয়, সাথে স্বয়ংক্রিয় নবায়ন।

প্রস্তুতি

তিনটি বিষয় যাচাই করুন, নাহলে ইস্যু ব্যর্থ হবে:

dig +short example.ru        # should return your machine's address
ss -tulpn | grep -E ':80|:443'
  • ডোমেইনের A রেকর্ডটি /hosting/vds/m/<id>-এ প্যানেলের “Overview” ট্যাবে দেখানো ঠিকানার দিকে নির্দেশ করে;
  • পোর্ট 80 বাইরে থেকে পৌঁছানো যায় — Let's Encrypt এটি দিয়ে ডোমেইনের মালিকানা যাচাই করে;
  • একটি ওয়েব সার্ভার চালু আছে: Nginx বা Apache।

আপনি যদি Caddy ব্যবহার করেন, তাহলে কিছুই করতে হবে না — এটি নিজেই সার্টিফিকেট ইস্যু করে।

ইস্যু করা

apt install -y certbot python3-certbot-nginx      # Debian, Ubuntu
dnf install -y certbot python3-certbot-nginx      # AlmaLinux, CentOS Stream

certbot --nginx -d example.ru -d www.example.ru

Apache-এর ক্ষেত্রে একই পথ, শুধু python3-certbot-apache এবং --apache ফ্ল্যাগ দিয়ে। Certbot নিজেই কনফিগে সার্টিফিকেট ব্লক ও HTTP থেকে HTTPS-এ রিডাইরেক্ট যোগ করে।

ফলাফল যাচাই করুন:

certbot certificates
curl -I https://example.ru

স্বয়ংক্রিয় নবায়ন

প্যাকেজটি একটি সিস্টেম টাইমার ইনস্টল করে, যা নবায়নও সামলায়। টাইমারটি সক্রিয় আছে কিনা নিশ্চিত করুন এবং একটি পরীক্ষামূলক নবায়ন চালান:

systemctl list-timers | grep certbot
certbot renew --dry-run

ড্রাই রান বাধ্যতামূলক। এটি সেই পরিস্থিতি ধরে ফেলে যেখানে দুই মাস পর নবায়ন ভেঙে যাবে — উদাহরণস্বরূপ, আপনি সাইট কনফিগের নাম বদলেছেন এবং certbot আর জানে না যাচাই ফাইলটি কোথায় রাখতে হবে।

যখন পোর্ট 80 দখল করা

যদি কোনো অ্যাপ্লিকেশন পোর্ট 80-এ চলছে এবং আপনি সেখানে ওয়েব সার্ভার বসাতে না পারেন, তাহলে আলাদা মোড ব্যবহার করুন:

certbot certonly --standalone --preferred-challenges http -d example.ru

যাচাইয়ের সময়টুকু Certbot নিজের একটি অস্থায়ী সার্ভার চালু করবে। সেজন্য অ্যাপ্লিকেশনটি থামাতে হবে: --pre-hook এবং --post-hook এটি স্বয়ংক্রিয়ভাবে করতে পারে।

ইস্যু করার পর সার্টিফিকেটগুলো /etc/letsencrypt/live/example.ru/-এ থাকে: fullchain.pem এবং privkey.pem।

সাধারণ ত্রুটি

লক্ষণকারণ
Timeout during connectপোর্ট 80 ফায়ারওয়াল দ্বারা ব্লক করা, অথবা ডোমেইনটি ভিন্ন মেশিনের দিকে নির্দেশ করছে
too many certificates already issuedআপনি ডোমেইনের সাপ্তাহিক সীমায় পৌঁছে গেছেন — অপেক্ষা করুন বা --staging দিয়ে ডিবাগ করুন
ইস্যু করার পর সাইটটি পুরোনো সার্টিফিকেট পরিবেশন করেআপনি ওয়েব সার্ভার রিলোড করেননি: systemctl reload nginx
সার্টিফিকেটের মেয়াদ শেষ হয়ে গেছেটাইমারটি নিষ্ক্রিয় — systemctl enable --now certbot.timer যাচাই করুন

/etc/letsencrypt ডিরেক্টরিটি আপনার ডেটার অংশ। মেশিনের স্বয়ংক্রিয় ব্যাকআপ নেই, তাই আপনার ওয়েব সার্ভার কনফিগের সাথে এটিও ব্যাকআপে রাখুন।