ब्राउज़र और सर्च इंजन HTTPS की अपेक्षा करते हैं, और Let's Encrypt सर्टिफ़िकेट मुफ़्त देता है। AlmaLinux 9 वाले VPS Linux Infrawire पर Certbot सर्टिफ़िकेट ले सकता है, Apache कॉन्फ़िगरेशन बदल सकता है और उसे खुद रिन्यू कर सकता है। यही चरण Rocky Linux 9 पर भी लागू होते हैं।
📋 पूर्व-आवश्यकताएँ
- root या sudo एक्सेस वाला AlmaLinux 9 VPS (IP और पासवर्ड आपके ग्राहक क्षेत्र में)।
- एक डोमेन,
example.com, जिसका A रिकॉर्ड (और IPv6 के लिए AAAA)VPS_IPकी ओर इशारा करता हो। पहले DNS प्रचार का इंतज़ार करें। - Apache (httpd) जो साइट को पोर्ट 80 पर HTTP से परोस रहा हो।
1. Apache इंस्टॉल करें और फ़ायरवॉल खोलें
अगर Apache इंस्टॉल नहीं है तो उसे इंस्टॉल करके शुरू करें। फिर firewalld में HTTP और HTTPS खोलें; Let's Encrypt सत्यापन के लिए पोर्ट 80 ज़रूरी है।
Bashdnf install -y httpd systemctl enable --now httpd firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload firewall-cmd --list-services
2. अपने डोमेन के लिए वर्चुअल होस्ट बनाएँ
Certbot आपके डोमेन से मेल खाता ServerName ढूँढता है, इसलिए एक अलग वर्चुअल होस्ट बनाएँ।
Bashmkdir -p /var/www/example.com/public_html echo "Hello" > /var/www/example.com/public_html/index.html
/etc/httpd/conf.d/example.com.conf बनाएँ:
Apache1<VirtualHost *:80> 2 ServerName example.com 3 ServerAlias www.example.com 4 DocumentRoot /var/www/example.com/public_html 5</VirtualHost>
सिंटैक्स जाँचें और रीलोड करें:
Bashapachectl configtest systemctl reload httpd
3. Certbot और mod_ssl इंस्टॉल करें
Certbot EPEL रिपॉज़िटरी से आता है। mod_ssl Apache का TLS मॉड्यूल और वह डिफ़ॉल्ट सर्टिफ़िकेट देता है जिसकी httpd को पोर्ट 443 पर सुनने के लिए ज़रूरत होती है।
Bashdnf install -y epel-release dnf install -y certbot python3-certbot-apache mod_ssl
4. सर्टिफ़िकेट माँगें
Apache प्लगइन के साथ Certbot चलाएँ। यह HTTP से डोमेन सत्यापित करता है, नया *-le-ssl.conf वर्चुअल होस्ट लिखता है और HTTP से HTTPS रीडायरेक्ट जोड़ सकता है।
Bashcertbot --apache -d example.com -d www.example.com
सही ईमेल पता दें (समाप्ति की चेतावनी के लिए), शर्तें स्वीकार करें और पूछे जाने पर रीडायरेक्ट विकल्प चुनें। -d से दिया गया हर नाम इसी सर्वर पर रिज़ॉल्व होना चाहिए, वरना सत्यापन विफल होगा।
अगर SELinux enforcing मोड में है (डिफ़ॉल्ट), तो मानक सेटअप के लिए कुछ विशेष नहीं चाहिए। किसी त्रुटि से बचने के लिए उसे बंद न करें।
5. ऑटोमैटिक रिन्यूअल जाँचें
Let's Encrypt सर्टिफ़िकेट 90 दिन चलते हैं। AlmaLinux 9 पर पैकेज एक systemd टाइमर इंस्टॉल करता है जो दिन में दो बार चलता है और केवल समाप्ति के करीब वाले सर्टिफ़िकेट रिन्यू करता है।
Bashsystemctl list-timers | grep certbot systemctl status certbot-renew.timer
अगर टाइमर सूची में नहीं है तो उसे चालू करें:
Bashsystemctl enable --now certbot-renew.timer
असली सर्टिफ़िकेट को छुए बिना रिन्यूअल का अनुकरण करें:
Bashcertbot renew --dry-run
आख़िरी लाइन में बताया जाना चाहिए कि सभी अनुकरणित रिन्यूअल सफल रहे। असली रिन्यूअल के बाद Apache अपने-आप रीलोड हो जाता है।
जाँच
Bashcertbot certificates curl -I https://example.com curl -I http://example.com
पहला कमांड डोमेन और समाप्ति तिथि सूचीबद्ध करता है। HTTPS अनुरोध 200 लौटाए और HTTP अनुरोध HTTPS पते पर 301 से जवाब दे। ब्राउज़र में ताला Let's Encrypt द्वारा जारी मान्य सर्टिफ़िकेट दिखाए। पूरी चेन देखने के लिए openssl s_client -connect example.com:443 -servername example.com चला सकते हैं।
समस्या निवारण
- सत्यापन में चुनौती विफल या टाइमआउट: DNS अभी सर्वर की ओर नहीं है या पोर्ट 80 बंद है।
dig +short example.com,firewall-cmd --list-servicesऔर VPS के आगे लगे फ़ायरवॉल जाँचें। - Certbot को मेल खाता वर्चुअल होस्ट नहीं मिलता:
/etc/httpd/conf.d/मेंServerNameयाServerAliasआपके दिए डोमेन से नहीं मिलता। ठीक करें,apachectl configtestचलाएँ और फिर कोशिश करें। आपcertbot certonly --apacheइस्तेमाल करके पाथ खुद भी सेट कर सकते हैं। - बहुत ज़्यादा सर्टिफ़िकेट या विफल सत्यापन (रेट लिमिट): Let's Encrypt बार-बार की कोशिशें सीमित करता है। पहले
certbot --apache --dry-runसे जाँचें और दोबारा कोशिश से पहले रुकें। - इंस्टॉल के बाद 443 पर साइट नहीं खुलती: firewalld में HTTPS खुला नहीं है या httpd रीलोड नहीं हुआ।
firewall-cmd --permanent --add-service=https,firewall-cmd --reloadऔरsystemctl restart httpdचलाएँ।
🔐 AlmaLinux 9 पर आपकी Apache साइट अब HTTPS परोसती है और अपना सर्टिफ़िकेट खुद रिन्यू करती है।