bg-tutorials

macOS सर्वर पर SSL सर्टिफिकेट कैसे इंस्टॉल करें

यह ट्यूटोरियल बताता है macOS पर SSL सर्टिफिकेट कैसे इंस्टॉल करें। इसमें Keychain Access के साथ आपके सर्टिफिकेट और CA बंडल को इम्पोर्ट करना, पुराना macOS Server (Server.app) वर्कफ़्लो जिस पर कई मौजूदा सेटअप अब भी चलते हैं, और वर्तमान macOS वर्शन के लिए यथार्थवादी तरीका शामिल है जहाँ Server.app अब मौजूद नहीं है।

महत्वपूर्ण: Apple ने macOS Server (Server.app) प्रोडक्ट को बंद कर दिया है। वेब, मेल, और अधिकतर होस्टिंग सेवाओं को 2018 में हटा दिया गया था, और ऐप को खुद अप्रैल 2022 में रिटायर कर दिया गया। आख़िरी वर्शन, 5.12.2, केवल macOS Monterey तक ही चलता है। नीचे दिए स्टेप्स में पुराना Server.app तरीका और वर्तमान तरीका, दोनों शामिल हैं।

CSR कोड जनरेट करें

अपने SSL सर्टिफिकेट को एक्टिवेट करने के लिए, आप अपने डोमेन और संगठन के बारे में जानकारी सर्टिफिकेट अथॉरिटी (CA) को भेजते हैं। इस स्टैंडर्ड स्टेप को सर्टिफिकेट साइनिंग रिक्वेस्ट, या CSR कहा जाता है। आपके पास दो विकल्प हैं:

अपने ऑर्डर के दौरान CSR सबमिट करें। CA आपकी रिक्वेस्ट को वेरिफाई करेगा और, अप्रूव होने के बाद, सर्टिफिकेट पर साइन करके उसे जारी करेगा। आपको सर्टिफिकेट फाइलें ईमेल के ज़रिए मिलेंगी। इसके बाद, नीचे दी गई इंस्टॉलेशन प्रक्रिया के साथ आगे बढ़ें।

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

नीचे दिए स्टेप्स मूल macOS Server (Server.app) वर्कफ़्लो का पालन करते हैं: Keychain Access के साथ CA बंडल और सर्टिफिकेट इम्पोर्ट करें, फिर Server ऐप में सेवाओं को सर्टिफिकेट असाइन करें। यदि आपके Mac में अब Server ऐप नहीं है, तो स्टेप 2 के बाद वर्तमान macOS: कोई Server.app नहीं पर जाएँ, क्योंकि Keychain इम्पोर्ट अब भी लागू होता है।

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

CA द्वारा भेजा गया ZIP आर्काइव डाउनलोड करें और उसे एक्सट्रैक्ट करें। आपके पास .crt एक्सटेंशन वाली फाइल (आपका प्राइमरी सर्टिफिकेट) और .ca-bundle एक्सटेंशन वाली फाइल (रूट और इंटरमीडिएट सर्टिफिकेट, जिसे CA बंडल भी कहा जाता है) होनी चाहिए। आपको वह प्राइवेट की भी चाहिए जो आपने CSR के साथ बनाई थी।

स्टेप 2: .ca-bundle फाइल को Keychain Access में जोड़ें

CA बंडल से शुरुआत करें। इसमें रूट और इंटरमीडिएट सर्टिफिकेट होते हैं जिनका उपयोग ब्राउज़र और क्लाइंट एक ट्रस्टेड रूट तक ट्रस्ट चेन बनाने के लिए करते हैं। इनके बिना, विज़िटर्स को “not secure” या अनट्रस्टेड सर्टिफिकेट चेतावनी दिख सकती है।

  1. .ca-bundle एक्सटेंशन वाली फाइल का पता लगाएं।
  2. Keychain Access खोलें (इसे Spotlight से सर्च करें, या इसे Applications > Utilities में ढूंढें)।
  3. .ca-bundle फाइल को Keychain Access विंडो में ड्रैग एंड ड्रॉप करें। इसे System keychain में जोड़ें ताकि यह सभी यूज़र्स और सेवाओं पर लागू हो।
  4. इम्पोर्ट की पुष्टि करने के लिए, सर्च बार में अपने CA का नाम टाइप करें। आपको इंटरमीडिएट सर्टिफिकेट और रूट सर्टिफिकेट सूचीबद्ध दिखनी चाहिए।

आप यही काम Terminal से भी कर सकते हैं, जो हेडलेस या रिमोट सर्वर पर काम आता है। यह कमांड बंडल को सिस्टम keychain में इम्पोर्ट करता है:

sudo security import yourdomain.ca-bundle -k /Library/Keychains/System.keychain

स्टेप 3: अपना प्राइमरी सर्टिफिकेट जोड़ें (लीगेसी Server.app)

यह स्टेप बंद हो चुके Server.app का उपयोग करता है। यदि आपके Mac में यह अब नहीं है, तो इसके बजाय अगला सेक्शन देखें।

  1. Server ऐप खोलें और Server > Certificates पर जाएँ।
  2. मुख्य पेज पर, पेंडिंग सर्टिफिकेट (वह जो CSR जनरेट करते समय बना था) पर डबल-क्लिक करें।
  3. खुलने वाली विंडो में, अपनी .crt फाइल को ड्रैग एंड ड्रॉप करें, फिर OK पर क्लिक करें।
  4. एक वैध सर्टिफिकेट अब जारीकर्ता का नाम और एक्सपायरी डेट दिखाता है।

स्टेप 4: सर्टिफिकेट को अपनी सेवाओं में असाइन करें (लीगेसी Server.app)

Server ऐप में, Secure services using सेटिंग ढूंढें। अपना SSL सर्टिफिकेट चुनने के लिए ड्रॉप-डाउन मेन्यू का उपयोग करें। इसे फाइल शेयरिंग या मेल जैसी विशिष्ट सेवाओं में असाइन करने के लिए, Custom पर क्लिक करें और जिन सेवाओं को आप सुरक्षित करना चाहते हैं उन्हें चुनें। पूरा होने पर, OK पर क्लिक करें।

अब आपका SSL सर्टिफिकेट इंस्टॉल हो गया है। परिणाम की पुष्टि करने और सामान्य समस्याओं की जाँच के लिए, हमारे SSL Checker का उपयोग करें।

वर्तमान macOS: कोई Server.app नहीं (Keychain के साथ Apache या nginx का उपयोग करें)

क्योंकि Apple ने Server.app को रिटायर कर दिया है, वर्तमान macOS वर्शन में कोई Server > Certificates स्क्रीन नहीं है और कोई प्रति-सेवा सर्टिफिकेट असाइनमेंट नहीं है। सिस्टम ट्रस्ट के लिए Keychain Access में सर्टिफिकेट इम्पोर्ट (स्टेप 2) अब भी लागू होता है, लेकिन आप वेब सर्वर को सीधे कॉन्फ़िगर करके HTTPS सर्व करते हैं। macOS में Apache (httpd) बिल्ट-इन आता है, और nginx Homebrew के ज़रिए उपलब्ध है। अपने सर्टिफिकेट और की को वहाँ रखें जहाँ सर्वर उन्हें पढ़ सके, उदाहरण के लिए /etc/ssl/ के अंदर, और प्राइवेट की को केवल root द्वारा पढ़ने योग्य रखें।

विकल्प A: बिल्ट-इन Apache (httpd)

/etc/apache2/httpd.conf एडिट करें और इन लाइनों से शुरुआती # हटा दें ताकि SSL मॉड्यूल्स और SSL कॉन्फ़िग लोड हों:

LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf

पहले, एक फुल-चेन फाइल बनाएं (आपका सर्टिफिकेट, उसके बाद CA बंडल), जिसकी अपेक्षा SSLCertificateFile Apache 2.4.8 और उससे नए वर्शन पर करता है:

cat yourdomain.crt yourdomain.ca-bundle > yourdomain_fullchain.crt

फिर /etc/apache2/extra/httpd-ssl.conf एडिट करें और सुनिश्चित करें कि यह पोर्ट 443 पर सुन रहा है। इस फाइल में पहले से एक डिफॉल्ट <VirtualHost _default_:443> ब्लॉक होता है जिसमें एक सेल्फ-साइन्ड सर्टिफिकेट होता है, इसलिए या तो उस ब्लॉक को एडिट करें या नीचे दिया वर्चुअल होस्ट जोड़ें और डिफॉल्ट को कमेंट आउट करें, ताकि पोर्ट 443 पर दो होस्ट न हों:

<VirtualHost *:443>
    ServerName www.yourdomain.com
    DocumentRoot "/Library/WebServer/Documents"

    SSLEngine on
    SSLCertificateFile    /etc/ssl/yourdomain_fullchain.crt
    SSLCertificateKeyFile /etc/ssl/private/yourdomain.key

    SSLProtocol         -all +TLSv1.2 +TLSv1.3
    SSLHonorCipherOrder off
</VirtualHost>

ऊपर दिए पाथ यह मानते हैं कि प्राइवेट की /etc/ssl/private/ में है, जो डिफॉल्ट रूप से macOS पर मौजूद नहीं भी हो सकती। इसे पहले बनाएं और की को केवल root द्वारा पढ़ने योग्य रखें:

sudo mkdir -p /etc/ssl/private
sudo chmod 600 /etc/ssl/private/yourdomain.key

रीस्टार्ट करने से पहले कॉन्फ़िगरेशन टेस्ट करें, फिर Apache को रीस्टार्ट करें:

sudo apachectl configtest
sudo apachectl restart

टेस्ट से आपको Syntax OK दिखना चाहिए। यदि आपको कोई एरर मिलता है, तो रीस्टार्ट करने से पहले उसे ठीक करें ताकि सर्वर स्टार्ट होने में विफल न हो।

विकल्प B: nginx

यदि आप nginx चलाते हैं, तो अपने सर्वर ब्लॉक में फुल-चेन फाइल और की का संदर्भ दें, फिर रीलोड करें:

server {
    listen 443 ssl;
    server_name www.yourdomain.com;

    ssl_certificate     /etc/ssl/yourdomain_fullchain.crt;
    ssl_certificate_key /etc/ssl/private/yourdomain.key;

    ssl_protocols TLSv1.2 TLSv1.3;
}
sudo nginx -t
sudo nginx -s reload

Mac के पूरे फ्लीट में कॉन्फ़िगरेशन मैनेजमेंट के लिए (जो भूमिका पुराना Profile Manager निभाता था), इसके बजाय वर्तमान MDM समाधान का उपयोग करें। किसी भी मशीन से इंस्टॉल किए गए सर्टिफिकेट को वेरिफाई करने के लिए, हमारे SSL Checker का उपयोग करें।

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

क्या macOS Server अभी भी उपलब्ध है?

नहीं। Apple ने 2018 में macOS Server से अधिकतर होस्टिंग सेवाओं को हटा दिया था और अप्रैल 2022 में ऐप को खुद बंद कर दिया। अंतिम रिलीज़, वर्शन 5.12.2, केवल macOS Monterey तक चलता है और नए macOS वर्शन पर समर्थित नहीं है। वर्तमान macOS पर आप Server ऐप का उपयोग करने के बजाय सर्टिफिकेट को Keychain Access में इम्पोर्ट करते हैं और Apache या nginx को सीधे कॉन्फ़िगर करते हैं।

Server ऐप के बिना macOS पर SSL सर्टिफिकेट कैसे इंस्टॉल करूँ?

CA बंडल और अपने सर्टिफिकेट को Keychain Access में इम्पोर्ट करें ताकि सिस्टम चेन पर भरोसा करे, फिर अपने वेब सर्वर को सर्टिफिकेट और प्राइवेट की की ओर इंगित करें। macOS में Apache शामिल है (जो /etc/apache2/ में कॉन्फ़िगर होता है), और आप Homebrew के माध्यम से nginx इंस्टॉल कर सकते हैं। Apache में SSLCertificateFile और SSLCertificateKeyFile सेट करें, या nginx में ssl_certificate और ssl_certificate_key सेट करें, फिर कॉन्फ़िग टेस्ट करें और सर्वर को रीस्टार्ट करें।

macOS SSL सर्टिफिकेट कहाँ स्टोर करता है?

ट्रस्टेड सर्टिफिकेट Keychain Access द्वारा प्रबंधित keychains में रहते हैं। सिस्टम-वाइड सर्टिफिकेट System keychain में जाते हैं, जो /Library/Keychains/System.keychain में स्टोर होता है। सर्टिफिकेट और प्राइवेट की फाइलें जिन्हें आपका वेब सर्वर पढ़ता है, उन्हें कहीं और भी रखा जा सकता है, उदाहरण के लिए /etc/ssl/ के अंदर, जब तक सर्वर कॉन्फ़िगरेशन उन्हें इंगित करता है और की केवल root द्वारा पढ़ने योग्य रहती है।

क्या मुझे macOS पर CA बंडल इंस्टॉल करने की ज़रूरत है?

हाँ। CA बंडल में इंटरमीडिएट और रूट सर्टिफिकेट होते हैं जो ब्राउज़र और क्लाइंट को एक पूरी ट्रस्ट चेन बनाने देते हैं। यदि आप इसे छोड़ देते हैं, तो कुछ विज़िटर्स को अनट्रस्टेड या इनकम्प्लीट सर्टिफिकेट चेन चेतावनी दिखेगी। .ca-bundle फाइल को Keychain Access में इम्पोर्ट करें, या इसे अपने सर्टिफिकेट के बाद जोड़कर Apache या nginx के लिए एक फुल-चेन फाइल बनाएं।

मैं यह कैसे सुनिश्चित करूँ कि सर्टिफिकेट सही तरीके से इंस्टॉल हुआ है?

अपनी साइट को ब्राउज़र में खोलें और पैडलॉक जाँचें, या Terminal से OpenSSL के साथ सर्वर से क्वेरी करें जो सर्टिफिकेट सर्व करता है उसे पढ़ने के लिए:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
यह जारीकर्ता और वैलिडिटी डेट्स प्रिंट करता है। आप हमारे SSL Checker के साथ एक पूरी बाहरी जाँच भी चला सकते हैं।

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

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

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

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