इस गाइड में, आप सीखेंगे CentOS पर SSL सर्टिफिकेट कैसे इंस्टॉल करें और इसके RHEL-फैमिली उत्तराधिकारियों (AlmaLinux, Rocky Linux, और CentOS Stream) पर Apache httpd वेब सर्वर का उपयोग करते हुए।
हमने पूरी प्रक्रिया को दिखाने वाला एक वीडियो भी रिकॉर्ड किया है। यदि आप टेक्स्ट संस्करण पसंद करते हैं, तो नीचे पढ़ना जारी रखें।
CSR कोड जेनरेट करें
SSL सर्टिफिकेट के लिए आवेदन करते समय, आप सबसे पहले एक CSR (Certificate Signing Request) जेनरेट करते हैं और इसे Certificate Authority को भेजते हैं। CSR टेक्स्ट का एक ब्लॉक है जिसमें आपके संपर्क और डोमेन विवरण होते हैं, और यह उसी समय बनाई गई एक प्राइवेट key के साथ जोड़ा जाता है। आपके पास दो विकल्प हैं:
- CSR को स्वचालित रूप से बनाने के लिए हमारे CSR Generator का उपयोग करें।
- हमारे चरण-दर-चरण ट्यूटोरियल का पालन करें CentOS पर CSR कैसे बनाएं।
चेकआउट के दौरान CSR को Certificate Authority को सबमिट करें। एक बार CA इसे वैलिडेट कर देता है और आपका सर्टिफिकेट जारी कर देता है, तो नीचे दी गई इंस्टॉलेशन प्रक्रिया जारी रखें।
CentOS / RHEL (Apache) पर SSL सर्टिफिकेट इंस्टॉल करें
वर्जन्स पर ध्यान दें: CentOS Linux 8 का End of Life 31 दिसंबर, 2021 को हुआ, और CentOS Linux 7 का EOL 30 जून, 2024 को हुआ। प्रोडक्शन के लिए, इसके बजाय एक समर्थित RHEL-फैमिली डिस्ट्रीब्यूशन चलाएं: RHEL 8/9/10, AlmaLinux, Rocky Linux, या CentOS Stream। ये सभी एक ही Apache httpd लेआउट साझा करते हैं, इसलिए नीचे दिए गए चरण इन सभी पर लागू होते हैं।
शुरू करने से पहले
वैलिडेशन के बाद, आपका Certificate Authority आपको सर्टिफिकेट फाइलें ईमेल करता है। सुनिश्चित करें कि आपके पास ये तीन अलग फाइलें तैयार हैं:
- yourdomain.crt, आपका प्राइमरी SSL सर्टिफिकेट।
- yourdomain.ca-bundle, इंटरमीडिएट सर्टिफिकेट्स (CA bundle)।
- yourdomain.key, वह प्राइवेट key जो आपने CSR के साथ जेनरेट की थी।
महत्वपूर्ण: प्राइवेट key को कभी भी सर्टिफिकेट चेन में शामिल न करें। key अपनी खुद की फाइल में रहती है, जिसे केवल root ही पढ़ सकता है।
चरण 1: TLS सपोर्ट इंस्टॉल करें (mod_ssl)
mod_ssl इंस्टॉल करें, जो Apache में TLS सपोर्ट जोड़ता है और /etc/httpd/conf.d/ssl.conf पर एक डिफॉल्ट TLS कॉन्फ़िग डालता है:
sudo dnf install -y mod_ssl
पुराने सिस्टम पर जो अभी भी yum पैकेज मैनेजर का उपयोग करते हैं, इसके बजाय sudo yum install -y mod_ssl चलाएं।
चरण 2: अपनी SSL फाइलें रखें
प्राइवेट key को /etc/pki/tls/private/ में कॉपी करें और इसकी अनुमतियों को लॉक करें ताकि केवल root ही इसे पढ़ सके:
sudo cp yourdomain.key /etc/pki/tls/private/
sudo chown root:root /etc/pki/tls/private/yourdomain.key
sudo chmod 600 /etc/pki/tls/private/yourdomain.key
इसके बाद, अपने सर्टिफिकेट और CA bundle को जोड़कर फुल-चेन फाइल बनाएं, और इसे /etc/pki/tls/certs/ में रखें:
cat yourdomain.crt yourdomain.ca-bundle
| sudo tee /etc/pki/tls/certs/yourdomain-fullchain.crt > /dev/null
फुल-चेन फाइल में केवल पब्लिक सर्टिफिकेट और इंटरमीडिएट चेन होनी चाहिए, कभी भी प्राइवेट key नहीं।
चरण 3: Apache TLS वर्चुअल होस्ट को कॉन्फ़िगर करें
आप या तो mod_ssl द्वारा बनाई गई डिफॉल्ट /etc/httpd/conf.d/ssl.conf को एडिट कर सकते हैं, या (अधिक साफ-सुथरे तरीके से) अपनी साइट के लिए एक समर्पित फाइल बना सकते हैं, उदाहरण के लिए /etc/httpd/conf.d/yourdomain.conf। इसे टेक्स्ट एडिटर से खोलें:
sudo nano /etc/httpd/conf.d/yourdomain.conf
एक पोर्ट 80 वर्चुअल होस्ट जोड़ें जो सभी ट्रैफिक को HTTPS पर रीडायरेक्ट करता है, इसके बाद सुरक्षित पोर्ट 443 वर्चुअल होस्ट जिसमें आपके SSL निर्देश होते हैं:
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/yourdomain.com
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/yourdomain-fullchain.crt
SSLCertificateKeyFile /etc/pki/tls/private/yourdomain.key
</VirtualHost>
- SSLCertificateFile, आपकी फुल-चेन फाइल (सर्टिफिकेट + इंटरमीडिएट्स)। Apache 2.4.8 और उससे नए संस्करणों पर, यह एकल निर्देश डिप्रिकेटेड SSLCertificateChainFile की जगह लेता है।
- SSLCertificateKeyFile, वह प्राइवेट key जो आपने CSR के साथ बनाई थी।
डिफॉल्ट होस्ट पर नोट: mod_ssl का /etc/httpd/conf.d/ssl.conf अपना खुद का <VirtualHost _default_:443> एक सेल्फ-साइन सर्टिफिकेट के साथ भेजता है। जब आप ऊपर दिखाए अनुसार प्रति-साइट *:443 होस्ट जोड़ते हैं, तो आपके ServerName से मेल खाने वाले अनुरोध आपके सर्टिफिकेट का उपयोग करते हैं, लेकिन बेमेल HTTPS अनुरोध (उदाहरण के लिए, सर्वर को उसके IP एड्रेस से हिट करना) उस डिफॉल्ट सेल्फ-साइन होस्ट पर वापस चले जाते हैं। यदि आप वह फॉलबैक नहीं चाहते हैं, तो ssl.conf में <VirtualHost _default_:443> ब्लॉक को कमेंट आउट करें या उसे अपने खुद के सर्टिफिकेट की ओर इंगित करें।
TLS हार्डनिंग पर नोट: RHEL 8 और उससे नए वर्जन पर Apache सिस्टम-वाइड क्रिप्टो पॉलिसी का पालन करता है, जो पहले से ही पुराने प्रोटोकॉल को अक्षम कर देती है। पूरे सर्वर पर पॉलिसी सेट करने के लिए, sudo update-crypto-policies --set DEFAULT चलाएं (या सख्त सेटिंग्स के लिए FUTURE)। यदि आप इसके बजाय प्रति वर्चुअल होस्ट प्रोटोकॉल पिन करना पसंद करते हैं, तो पोर्ट 443 ब्लॉक के अंदर SSLProtocol -all +TLSv1.2 +TLSv1.3 जोड़ें।
चरण 4: अपने Apache कॉन्फ़िगरेशन का परीक्षण करें
रीलोड करने से पहले हमेशा सिंटैक्स की जांच करें, क्योंकि एक भी टाइपो साइट को ऑफलाइन कर सकता है:
sudo apachectl configtest
आपको Syntax OK दिखना चाहिए। (कमांड sudo httpd -t भी वही काम करता है।) आगे बढ़ने से पहले रिपोर्ट की गई किसी भी त्रुटि को ठीक करें।
चरण 5: Apache को रीस्टार्ट करें
httpd सेवा को रीलोड करके बदलावों को लागू करें (एक रीलोड लाइव कनेक्शन को छोड़े बिना नए कॉन्फ़िग को सक्रिय करता है):
sudo systemctl reload httpd
यदि httpd अभी तक नहीं चल रहा था, तो इसे sudo systemctl enable --now httpd से शुरू करें। आपकी वेबसाइट अब HTTPS पर लाइव होनी चाहिए। परिणाम सत्यापित करने और तुरंत स्थिति रिपोर्ट प्राप्त करने के लिए, हमारे SSL Checker का उपयोग करें।
पुराने CentOS (7 और उससे पहले) के लिए नोट्स
CentOS Linux 7, 6, और 8 सभी End of Life पार कर चुके हैं और अब सुरक्षा अपडेट प्राप्त नहीं करते हैं, इसलिए जब आप कर सकें तो एक समर्थित RHEL-फैमिली डिस्ट्रीब्यूशन पर माइग्रेट करें। यदि आपको किसी लीगेसी सर्वर पर काम करना ही है, तो प्रक्रिया ऊपर जैसी ही है, दो अंतरों के साथ:
- पैकेज मैनेजर: CentOS 7 और 6 dnf के बजाय yum का उपयोग करते हैं। जांचें कि mod_ssl पहले से इंस्टॉल है या नहीं
rpm -qa | grep mod_sslके साथ, और यदि नहीं है, तो इसेsudo yum install -y mod_sslसे इंस्टॉल करें। - 2.4.8 से पुराना Apache: केवल बहुत पुराने बिल्ड ही 2.4.8 से पहले के हैं। वहां, सर्टिफिकेट और चेन को अलग-अलग फाइलों में रखें और एक तीसरा निर्देश जोड़ें, SSLCertificateChainFile, जो CA bundle की ओर इंगित करे (आपके सर्टिफिकेट की ओर नहीं):
SSLCertificateFile /etc/pki/tls/certs/yourdomain.crt
SSLCertificateKeyFile /etc/pki/tls/private/yourdomain.key
SSLCertificateChainFile /etc/pki/tls/certs/yourdomain.ca-bundle
Apache 2.4.8 और उससे नए (जो हर वर्तमान में समर्थित रिलीज़ को कवर करता है) पर, इसके बजाय चरण 3 में दिखाए गए सरल एकल फुल-चेन SSLCertificateFile का उपयोग करें।
CentOS के लिए SSL सर्टिफिकेट कहां से खरीदें?
आपके CentOS सर्वर के लिए SSL सर्टिफिकेट खरीदने का सबसे अच्छा स्थान एक प्रतिष्ठित SSL रीसेलर जैसे SSL Dragon है। हमारी कीमतें बाजार में सबसे कम में से एक हैं, और हम अपने SSL उत्पादों की पूरी रेंज में नियमित छूट और शानदार डील ऑफर करते हैं, जो शानदार ग्राहक सहायता द्वारा समर्थित है। हमारे सभी सर्टिफिकेट CentOS और इसके RHEL-फैमिली उत्तराधिकारियों के साथ संगत हैं।
SSL Dragon आपके संवेदनशील डेटा की सुरक्षा का ध्यान रखता है, ताकि आपकी वेबसाइट या व्यवसाय ऑनलाइन फल-फूल सके।
अक्सर पूछे जाने वाले प्रश्न
OpenSSL के साथ अपनी साइट से कनेक्ट करें और उसके द्वारा दिए जा रहे सर्टिफिकेट को पढ़ें:echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
यदि कोई सर्टिफिकेट इंस्टॉल है, तो यह उसका जारीकर्ता और वैधता तिथियां प्रिंट करता है। इसके बजाय डिस्क पर किसी सर्टिफिकेट फाइल की जांच करने के लिए, openssl x509 -text -noout -in certificate.crt चलाएं। आप sudo apachectl -S के साथ Apache के सक्रिय वर्चुअल होस्ट भी लिस्ट कर सकते हैं, या ब्राउज़र में अपनी साइट खोलें और पैडलॉक जांचें।
परंपरा के अनुसार, सर्टिफिकेट /etc/pki/tls/certs/ में जाते हैं और प्राइवेट कीज़ /etc/pki/tls/private/ में। ये RHEL-फैमिली के डिफॉल्ट हैं; आप अन्य स्थानों का उपयोग कर सकते हैं जब तक कि आपका वर्चुअल होस्ट उनकी ओर इंगित करता है।
TLS मॉड्यूल अपने डिफॉल्ट को /etc/httpd/conf.d/ssl.conf पर इंस्टॉल करता है, और मुख्य Apache कॉन्फ़िग /etc/httpd/conf/httpd.conf है। आप अपने वर्चुअल होस्ट को ssl.conf में जोड़ सकते हैं, लेकिन /etc/httpd/conf.d/yourdomain.conf जैसी प्रति-साइट फाइल बनाना अधिक साफ-सुथरा है। /etc/httpd/conf.d/ में कोई भी .conf फाइल स्वचालित रूप से लोड होती है। Apache लॉग /var/log/httpd/ में रहते हैं।
Apache 2.4.8 और उसके बाद (हर वर्तमान में समर्थित RHEL-फैमिली रिलीज़) पर, हां: अपने सर्टिफिकेट और CA bundle को एक फुल-चेन फाइल में जोड़ें और SSLCertificateFile को उसकी ओर इंगित करें। अलग SSLCertificateChainFile निर्देश डिप्रिकेटेड है और केवल 2.4.8 से पुराने Apache बिल्ड पर ही आवश्यक है।
OpenSSL CentOS और हर अन्य प्रमुख Linux डिस्ट्रीब्यूशन पर पहले से इंस्टॉल आता है, इसलिए आपको आमतौर पर इसे इंस्टॉल करने की आवश्यकता नहीं होती। यदि यह गायब है, तो इसे sudo dnf install -y openssl के साथ जोड़ें (या CentOS 7 और उससे पहले पर sudo yum install -y openssl)। OpenSSL और उसकी कमांड लाइनों के बारे में अधिक जानें।
निष्कर्ष
Apache के साथ CentOS या RHEL पर SSL सर्टिफिकेट इंस्टॉल करना mod_ssl इंस्टॉल करने, अपनी प्राइवेट key और फुल-चेन सर्टिफिकेट को /etc/pki/tls/ के तहत रखने, /etc/httpd/conf.d/ में <VirtualHost *:443> ब्लॉक को कॉन्फ़िगर करने, sudo apachectl configtest से परीक्षण करने, और sudo systemctl reload httpd से रीलोड करने पर निर्भर करता है। पहले सर्टिफिकेट चाहिए? हमारे SSL सर्टिफिकेट ब्राउज़ करें।
आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!
तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10

