मुफ़्त 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डायरेक्टरी आपके डेटा का हिस्सा है। मशीन का अपने आप कोई बैकअप नहीं बनता, इसलिए इसे अपने वेब सर्वर कॉन्फ़िग के साथ बैकअप में शामिल करें।