bg-tutorials

Apache पर SSL Certificate कैसे इंस्टॉल करें

इस गाइड में, आप चरण दर चरण Apache पर SSL सर्टिफिकेट कैसे इंस्टॉल करें सीखेंगे। ये निर्देश Apache 2.4 पर लागू होते हैं, जो वर्तमान स्थिर रिलीज़ लाइन है।

विषय-सूची

Apache पर CSR कोड कैसे जनरेट करें?

सर्टिफिकेट साइनिंग रिक्वेस्ट, या सीधे शब्दों में CSR, एक छोटी टेक्स्ट फाइल होती है जिसमें आपके डोमेन स्वामित्व और/या कंपनी की जानकारी होती है। CSR जनरेट करना SSL खरीदने की प्रक्रिया का एक अभिन्न हिस्सा है, और सभी वाणिज्यिक सर्टिफिकेट अथॉरिटी SSL आवेदकों को यह चरण पूरा करने की आवश्यकता होती है।

आपके पास दो विकल्प हैं:

  • हमारे CSR जनरेटर का उपयोग करके CSR स्वचालित रूप से जनरेट करें।
  • Apache पर CSR कैसे बनाएं, इस पर हमारे चरण-दर-चरण ट्यूटोरियल का पालन करें।

Apache पर SSL सर्टिफिकेट इंस्टॉल करें

सर्टिफिकेट अथॉरिटी द्वारा हस्ताक्षर करके SSL सर्टिफिकेट भेजने के बाद, आप इसे अपने Apache सर्वर पर सुरक्षित रूप से इंस्टॉल कर सकते हैं। नीचे दिए गए चरणों का पालन करें।

चरण 1: अपनी सर्टिफिकेट फाइलें तैयार करें

अपनी सर्टिफिकेट अथॉरिटी से प्राप्त ZIP फोल्डर से फाइलें डाउनलोड करें और निकालें। आमतौर पर आपको ये मिलेंगी:

  • .crt फाइल – आपका प्राथमिक SSL सर्टिफिकेट।
  • .ca-bundle फाइल – इंटरमीडिएट (और रूट) सर्टिफिकेट जो विश्वास श्रृंखला (chain of trust) बनाते हैं। ब्राउज़र और एप्लिकेशन आपके सर्टिफिकेट को सत्यापित कर सकें, इसके लिए यह चेन आवश्यक है। इसके बिना, कुछ क्लाइंट आपकी साइट को असुरक्षित के रूप में फ्लैग कर सकते हैं।

इन फाइलों को, अपने CSR के साथ जनरेट की गई प्राइवेट की (.key) के साथ, अपने सर्वर पर एक सुरक्षित डायरेक्टरी में अपलोड करें, उदाहरण के लिए /etc/ssl/। प्राइवेट की को केवल root द्वारा पढ़ने योग्य रखें (chmod 600)।

अनुशंसित (Apache 2.4.8 और नए संस्करण): अपने सर्टिफिकेट और CA बंडल को एक ही “फुल चेन” फाइल में मिलाएं। Apache 2.4.8 से, SSLCertificateFile डायरेक्टिव सीधे इस फाइल से इंटरमीडिएट सर्टिफिकेट लोड करता है, यही कारण है कि पुराना SSLCertificateChainFile डायरेक्टिव अब आवश्यक नहीं है:

cat your_domain.crt your_domain.ca-bundle > your_domain_fullchain.crt

अगर आपके CA ने इंटरमीडिएट सर्टिफिकेट को अलग फाइलों के रूप में डिलीवर किया है, तो पहले उन्हें अपने सर्टिफिकेट के साथ जोड़ें, फिर उन इंटरमीडिएट्स को क्रम में लगाएं जो आपके सर्टिफिकेट पर हस्ताक्षर करने वाले से लेकर रूट तक जाते हैं (रूट सर्टिफिकेट स्वयं वैकल्पिक है):

cat your_domain.crt intermediate.crt root.crt > your_domain_fullchain.crt

उदाहरण के लिए, Sectigo PositiveSSL सर्टिफिकेट इंस्टॉल करते समय, आप अपने डोमेन सर्टिफिकेट को Sectigo इंटरमीडिएट बंडल के साथ जोड़ेंगे। हमेशा अपने CA द्वारा प्रदान किए गए सटीक फाइल नामों का उपयोग करें।

चरण 2: SSL मॉड्यूल (mod_ssl) सक्षम करें

HTTPS कॉन्फ़िगर करने से पहले, सुनिश्चित करें कि Apache का SSL मॉड्यूल सक्षम है।

Debian/Ubuntu पर, mod_ssl (और mod_headers, जिसकी आपको चरण 4 में HSTS हेडर के लिए आवश्यकता होगी) सक्षम करें:

sudo a2enmod ssl
sudo a2enmod headers

RHEL/CentOS/AlmaLinux/Rocky Linux पर, SSL मॉड्यूल पैकेज इंस्टॉल करें (इंस्टॉल होने के बाद मॉड्यूल स्वतः लोड हो जाता है):

sudo dnf install mod_ssl

चरण 3: Apache कॉन्फ़िगरेशन फाइल का पता लगाएं

आपके ऑपरेटिंग सिस्टम और Apache संस्करण के आधार पर, कॉन्फ़िगरेशन अलग-अलग फाइलों में हो सकता है। नीचे दिए गए स्थानों में से किसी एक में httpd.conf, apache2.conf, या एक समर्पित SSL/साइट कॉन्फ़िगरेशन फाइल देखें:

  • Debian/Ubuntu: मुख्य कॉन्फ़िग /etc/apache2/apache2.conf; प्रति-साइट कॉन्फ़िग /etc/apache2/sites-available/ में।
  • RHEL/CentOS/AlmaLinux/Rocky: मुख्य कॉन्फ़िग /etc/httpd/conf/httpd.conf; SSL कॉन्फ़िग /etc/httpd/conf.d/ssl.conf

नोट: अगर आपका Apache सर्वर Ubuntu पर चल रहा है, तो आप हमारे समर्पित Ubuntu के लिए SSL इंस्टॉलेशन निर्देश का भी पालन कर सकते हैं।

चरण 4: वर्चुअल होस्ट कॉन्फ़िगर करें

सबसे पहले, अपनी वर्तमान कॉन्फ़िगरेशन फाइल का बैकअप लें। इस तरह, अगर कुछ गलत होता है, तो आप जल्दी से अपने परिवर्तनों को वापस पा सकते हैं:

sudo cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.backup

अब कॉन्फ़िगरेशन फाइल खोलें और HTTPS (पोर्ट 443) वर्चुअल होस्ट सेट करें। एक पूर्ण, आधुनिक वर्चुअल होस्ट कुछ इस तरह दिखता है:

<VirtualHost *:443>
    ServerName  www.example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/example

    SSLEngine on

    # Apache 2.4.8+ : server certificate + intermediate chain in ONE file
    SSLCertificateFile    /etc/ssl/example_com_fullchain.crt
    SSLCertificateKeyFile /etc/ssl/example_com.key

    # Recommended TLS hardening (2026)
    SSLProtocol         -all +TLSv1.2 +TLSv1.3
    SSLHonorCipherOrder off

    # Tell browsers to always use HTTPS. Remove the leading # to enable HSTS,
    # but only after you have confirmed HTTPS works correctly:
    # Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

    ErrorLog  ${APACHE_LOG_DIR}/example_error.log
    CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>

example.com, डॉक्यूमेंट रूट, और फाइल पथों को अपने खुद के मूल्यों से बदलें। यहाँ मुख्य डायरेक्टिव्स के काम बताए गए हैं:

  • SSLEngine on – इस वर्चुअल होस्ट के लिए SSL/TLS सक्षम करता है।
  • SSLCertificateFile – चरण 1 में बनाई गई आपकी फुल-चेन फाइल (सर्टिफिकेट + इंटरमीडिएट्स) का पथ। Apache 2.4.8+ पर यह एक डायरेक्टिव पुराने और अप्रचलित SSLCertificateChainFile की जगह लेता है।
  • SSLCertificateKeyFile – आपकी प्राइवेट की का पथ, जो CSR के साथ जनरेट की गई थी।
  • SSLProtocol -all +TLSv1.2 +TLSv1.3 – पुराने, असुरक्षित SSL/TLS प्रोटोकॉल को निष्क्रिय करता है और केवल TLS 1.2 और TLS 1.3 की अनुमति देता है।
  • Strict-Transport-Security (HSTS) – ब्राउज़र को केवल HTTPS के माध्यम से कनेक्ट करने का निर्देश देता है। इसके लिए mod_headers (चरण 2 में सक्षम किया गया) आवश्यक है। इसे तभी चालू करें जब आपने पुष्टि कर ली हो कि HTTPS सही ढंग से काम कर रहा है।

सुनिश्चित करें कि इनमें से कोई भी लाइन # से शुरू नहीं होती (जो उन्हें कमेंट कर देगी)। Debian/Ubuntu पर, ${APACHE_LOG_DIR} का मान /var/log/apache2 होता है; RHEL आधारित सिस्टम पर इसके बजाय /var/log/httpd/ का उपयोग करें।

पुराने सर्वर: अगर आप Apache 2.4.8 से पुराने संस्करण पर अटके हुए हैं, तो सर्टिफिकेट और चेन को अलग-अलग फाइलों में रखें और SSLCertificateFile के नीचे अप्रचलित SSLCertificateChainFile /etc/ssl/example_com.ca-bundle डायरेक्टिव जोड़ें। किसी भी आधुनिक सर्वर पर, ऊपर दिया गया फुल-चेन तरीका पसंदीदा है।

उन्नत हार्डनिंग (वैकल्पिक): अधिक मजबूत सिफर सुइट और OCSP स्टैपलिंग के लिए, Mozilla SSL Configuration Generator के साथ एक अनुकूल कॉन्फ़िगरेशन जनरेट करें। OCSP स्टैपलिंग के लिए आपके ग्लोबल Apache कॉन्फ़िगरेशन में SSLStaplingCache डायरेक्टिव भी आवश्यक है।

साइट सक्षम करें: Debian/Ubuntu पर, /etc/apache2/sites-available/ में रखा गया एक वर्चुअल होस्ट तब तक लोड नहीं होता जब तक आप इसे सक्षम नहीं करते। अगर आपने इस कॉन्फ़िगरेशन को एक नई फाइल के रूप में सहेजा है (उदाहरण के लिए example-ssl.conf), तो इसे इसके साथ सक्रिय करें:

sudo a2ensite example-ssl.conf

आप इसके बजाय दी गई default-ssl.conf को संपादित कर सकते हैं, लेकिन इसे भी a2ensite default-ssl के साथ सक्षम करना होगा। RHEL/CentOS/AlmaLinux/Rocky पर, /etc/httpd/conf.d/ में फाइलें स्वतः लोड हो जाती हैं — लेकिन ध्यान दें कि ssl.conf में पहले से ही एक स्व-हस्ताक्षरित सर्टिफिकेट के साथ एक डिफॉल्ट <VirtualHost _default_:443> ब्लॉक होता है, इसलिए या तो उस ब्लॉक को संपादित करें या दो ओवरलैपिंग पोर्ट-443 होस्ट से बचने के लिए अपने वर्चुअल होस्ट को /etc/httpd/conf.d/yourdomain.conf जैसी एक अलग फाइल के रूप में जोड़ें।

चरण 5: HTTP को HTTPS पर रीडायरेक्ट करें

यह सुनिश्चित करने के लिए कि विज़िटर हमेशा आपकी साइट के सुरक्षित संस्करण तक पहुँचें, पोर्ट 80 पर एक दूसरा वर्चुअल होस्ट जोड़ें जो सभी HTTP ट्रैफिक को स्थायी रूप से HTTPS पर रीडायरेक्ट करता है:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / https://www.example.com/
</VirtualHost>

चरण 6: अपने कॉन्फ़िगरेशन का परीक्षण करें और Apache को पुनः आरंभ करें

पुनः आरंभ करने से पहले हमेशा अपने कॉन्फ़िगरेशन का परीक्षण करें। एक सिंटैक्स त्रुटि आपकी साइट को ऑफलाइन कर सकती है, इसलिए चलाएं:

sudo apachectl configtest

अगर सब कुछ सही है, तो आपको यह दिखाई देगा:

Syntax OK

अब Apache को रीलोड करके परिवर्तन लागू करें (रीलोड मौजूदा कनेक्शन को छोड़े बिना नए कॉन्फ़िगरेशन को सक्रिय करता है):

sudo systemctl reload apache2     # Debian/Ubuntu
sudo systemctl reload httpd       # RHEL/CentOS/AlmaLinux/Rocky

अगर रीलोड पर्याप्त नहीं है, तो इसके बजाय सेवा को पुनः आरंभ करें (sudo systemctl restart apache2 या httpd)। systemd के बिना पुराने सिस्टम पर, sudo apachectl graceful का उपयोग करें।

अगर इंस्टॉलेशन सफल रहा, तो बधाई हो! आपकी वेबसाइट अब SSL/TLS के साथ सुरक्षित है।

अपनी SSL इंस्टॉलेशन का परीक्षण करें

Apache पर अपना SSL सर्टिफिकेट इंस्टॉल करने के बाद, सत्यापित करें कि सब कुछ अपेक्षा के अनुरूप काम कर रहा है। एक तुरंत स्कैन किसी भी त्रुटि या कमजोरियों को उजागर करेगा जो आपके सर्टिफिकेट के प्रदर्शन को प्रभावित कर सकती हैं। अपनी इंस्टॉलेशन की स्थिति जांचने के लिए हमारे SSL Checker टूल का उपयोग करें।

आप कमांड लाइन से सीधे सर्टिफिकेट और इसकी चेन की पुष्टि भी कर सकते हैं:

openssl s_client -connect www.example.com:443 -servername www.example.com

Apache के लिए SSL सर्टिफिकेट कहाँ से खरीदें?

Apache के लिए SSL सर्टिफिकेट प्राप्त करने के लिए सबसे अच्छी जगह SSL Dragon है। हम अपने पूरे SSL उत्पादों की श्रेणी में बेजोड़ कीमतें और छूट प्रदान करते हैं, और हमने आपकी वेबसाइट को अभेद्य सुरक्षा से लैस करने के लिए बाजार के सर्वश्रेष्ठ SSL ब्रांडों को सावधानीपूर्वक चुना है। हमारे सभी SSL सर्टिफिकेट Apache के साथ संगत हैं। अभी SSL सर्टिफिकेट प्राप्त करें!

ध्यान रखें कि SSL/TLS सर्टिफिकेट की वैधता अवधि घट रही है: अधिकतम वैधता मार्च 2026 में 200 दिन, 2027 में 100 दिन, और 2029 तक केवल 47 दिन तक गिर जाएगी। छोटे जीवनचक्र का मतलब है अधिक बार नवीनीकरण, इसलिए अपनी नवीनीकरण प्रक्रिया (और स्वचालन) की पहले से योजना बनाना उचित है।

अक्सर पूछे जाने वाले प्रश्न

Apache में SSL क्या है?

SSL (Secure Sockets Layer), जिसे अब TLS (Transport Layer Security) द्वारा प्रतिस्थापित किया गया है, एक क्रिप्टोग्राफिक प्रोटोकॉल है जो दो नेटवर्क एंडपॉइंट्स के बीच संचार को एन्क्रिप्ट करता है, उदाहरण के लिए Apache जैसा वेब सर्वर और उपयोगकर्ता का ब्राउज़र।

मुझे कैसे पता चलेगा कि Apache SSL सक्षम है?

Debian और Ubuntu डिस्ट्रीब्यूशन पर, SSL प्रोटोकॉल डायरेक्टिव के लिए कॉन्फ़िगरेशन खोजें:

grep -ir SSLProtocol /etc/apache2/

अगर SSL कॉन्फ़िगर है, तो आपको इसके समान आउटपुट दिखाई देगा:

/etc/apache2/mods-available/ssl.conf:SSLProtocol +TLSv1.2 +TLSv1.3

आप यह भी पुष्टि कर सकते हैं कि SSL मॉड्यूल चल रहे सर्वर में लोड है:

apachectl -M | grep ssl

Apache में SSL .conf फाइल कहाँ है?

आपके OS और सेटअप के आधार पर कॉन्फ़िगरेशन फाइल अलग-अलग स्थानों में हो सकती है। Debian/Ubuntu पर, /etc/apache2/apache2.conf और /etc/apache2/sites-available/ में प्रति-साइट फाइलों की जांच करें। RHEL/CentOS/AlmaLinux/Rocky पर, /etc/httpd/conf/httpd.conf और /etc/httpd/conf.d/ssl.conf की जांच करें।

SSLCertificateFile और SSLCertificateChainFile में क्या अंतर है?

SSLCertificateFile आपके सर्वर सर्टिफिकेट की ओर इशारा करता है। Apache 2.4.8 से, वही फाइल इंटरमीडिएट सर्टिफिकेट भी रख सकती है, इसलिए यह पूरी चेन प्रदान करती है। SSLCertificateChainFile उन इंटरमीडिएट्स को अलग से प्रदान करने का पुराना तरीका था, लेकिन यह Apache 2.4.8 के बाद से अप्रचलित हो चुका है। किसी भी आधुनिक सर्वर पर, सर्टिफिकेट और इंटरमीडिएट्स को एक ही फाइल में रखें और इसे केवल SSLCertificateFile के साथ संदर्भित करें।

आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!

तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10

उड़ान में एक ड्रैगन की एक विस्तृत छवि
द्वारा लिखित

एसएसएल प्रमाणपत्रों में विशेषज्ञता वाला अनुभवी सामग्री लेखक। जटिल साइबर सुरक्षा विषयों को स्पष्ट, आकर्षक सामग्री में बदलना। प्रभावशाली आख्यानों के माध्यम से डिजिटल सुरक्षा को बेहतर बनाने में योगदान करें।