مفت Let's Encrypt سرٹیفکیٹ
certbot کے ساتھ VPS پر HTTPS سرٹیفکیٹ کیسے جاری اور خودکار تجدید کریں، بشمول وہ صورت جب پورٹ 80 پہلے سے استعمال میں ہو۔
اپ ڈیٹ 23 اگست، 2026
براؤزر میں “Not secure” دکھانے سے روکنے اور فارمز و ادائیگیوں کے درست کام کرنے کے لیے آپ کو ایک سرٹیفکیٹ درکار ہے۔ Let's Encrypt 90 دن کے لیے مفت سرٹیفکیٹ جاری کرتا ہے، جس کی تجدید خودکار ہوتی ہے۔
تیاری
تین چیزیں چیک کریں، ورنہ اجرا ناکام ہو جائے گا:
dig +short example.ru # should return your machine's address
ss -tulpn | grep -E ':80|:443'
- ڈومین کا A ریکارڈ پینل کے “Overview” ٹیب پر دیے گئے پتے
/hosting/vds/m/<id>کی طرف اشارہ کرتا ہو؛ - پورٹ 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ڈائریکٹری آپ کے ڈیٹا کا حصہ ہے۔ مشین کا خودکار بیک اپ نہیں ہوتا، اس لیے اسے اپنے ویب سرور کنفگز کے ساتھ بیک اپ میں شامل کریں۔