bg-tutorials

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

इस ट्यूटोरियल में, आप सीखेंगे कि Postfix, जो कि एक लोकप्रिय Linux मेल ट्रांसफर एजेंट है, पर SSL/TLS सर्टिफिकेट कैसे इंस्टॉल करें

हमने पूरी प्रक्रिया को समझाने वाला एक वीडियो भी रिकॉर्ड किया है। इसे नीचे देखें, या टेक्स्ट वर्शन पढ़ना जारी रखें।

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

अगर आपने पहले ही अपना CSR कोड जनरेट कर लिया है और सिर्फ इंस्टॉलेशन स्टेप्स चाहिए, तो सीधे Postfix पर SSL सर्टिफिकेट इंस्टॉल करें पर जाएँ।

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

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

अपने SSL वेंडर के साथ ऑर्डर प्रक्रिया के दौरान, CSR फ़ाइल को किसी भी प्लेन-टेक्स्ट एडिटर में खोलें और पूरे ब्लॉक को, जिसमें —–BEGIN CERTIFICATE REQUEST—– और —–END CERTIFICATE REQUEST—– लाइनें शामिल हैं, संबंधित बॉक्स में कॉपी-पेस्ट करें। एक बार जब CA आपके रिक्वेस्ट को वैलिडेट कर देता है और सर्टिफिकेट जारी करता है, तो नीचे दिए गए इंस्टॉलेशन के साथ आगे बढ़ें।

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

जब CA आपके रिक्वेस्ट को वैलिडेट कर लेता है और सर्टिफिकेट फ़ाइलें आपके इनबॉक्स में भेज देता है, तो आप इंस्टॉलेशन शुरू कर सकते हैं।

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

Postfix X.509 फॉर्मेट में SSL/TLS सर्टिफिकेट का उपयोग करता है। सही इंस्टॉलेशन के लिए तीन फ़ाइलों की आवश्यकता होती है:

  • आपकी प्राइवेट की, जो आपके सर्वर पर CSR के साथ जनरेट की गई थी (उदाहरण के लिए privkey.key)।
  • आपका प्राइमरी SSL सर्टिफिकेट, वह फ़ाइल जो CA द्वारा ईमेल किए गए ZIP आर्काइव के अंदर होती है। इस गाइड में हम इसे server.crt कहेंगे।
  • इंटरमीडिएट सर्टिफिकेट(स), यानी उसी ZIP आर्काइव से मिला CA बंडल। हम इसे intermediate.pem कहेंगे।

आप इन तीनों फ़ाइलों को एक ही डायरेक्टरी में रख सकते हैं, उदाहरण के लिए /etc/postfix/। सुनिश्चित करें कि प्राइवेट की केवल root द्वारा पढ़ी जा सके:

sudo chmod 600 /etc/postfix/privkey.key

स्टेप 2: सर्टिफिकेट चेन बनाएं

आप फ़ाइलों को कैसे असेंबल करते हैं, यह आपके Postfix वर्शन पर निर्भर करता है। पहले इसे जांच लें:

postconf mail_version

अनुशंसित (Postfix 3.4 और उससे नए वर्शन)

एक चेन फ़ाइल बनाएं जिसमें प्राइवेट की, सर्वर सर्टिफिकेट, और इंटरमीडिएट(स) शामिल हों, इसी क्रम में:

cat /path/to/privkey.key /path/to/server.crt /path/to/intermediate.pem > /etc/postfix/rsachain.pem

यह मॉडर्न तरीका सर्टिफिकेट-रोलओवर से जुड़ी समस्याओं से बचाता है और Postfix के smtpd_tls_chain_files डायरेक्टिव के साथ अच्छी तरह काम करता है। चेन फ़ाइल को की के जैसे ही सुरक्षित रखें, क्योंकि इसमें आपकी प्राइवेट की भी होती है:

sudo chmod 600 /etc/postfix/rsachain.pem

वैकल्पिक (सभी Postfix वर्शन)

यदि आप Postfix का 3.4 से पुराना वर्शन चला रहे हैं, तो की को अलग रखें और केवल सर्वर सर्टिफिकेट को इंटरमीडिएट(स) के साथ जोड़ें:

cat /path/to/server.crt /path/to/intermediate.pem > /etc/postfix/server.pem

आप इस बंडल और प्राइवेट की का संदर्भ नीचे दिए गए कॉन्फिगरेशन में अलग-अलग देंगे।

स्टेप 3: Postfix को कॉन्फिगर करें

मुख्य कॉन्फिगरेशन फ़ाइल /etc/postfix/main.cf खोलें और अपने सेटअप के अनुसार विकल्प चुनें।

विकल्प A: Postfix 3.4 या उससे नया (अनुशंसित)। Postfix को उस एक चेन फ़ाइल की ओर इंगित करें जो आपने बनाई है:

smtpd_tls_chain_files = /etc/postfix/rsachain.pem
smtpd_tls_security_level = may

विकल्प B: पुराना तरीका (Postfix 3.4 से पुराना)। सर्टिफिकेट बंडल और की को अलग-अलग संदर्भित करें:

smtpd_tls_cert_file = /etc/postfix/server.pem
smtpd_tls_key_file = /etc/postfix/privkey.key
smtpd_tls_security_level = may

इन डायरेक्टिव्स पर कुछ महत्वपूर्ण बातें:

  • smtpd_tls_security_level = may पोर्ट 25 पर इनबाउंड मेल के लिए opportunistic TLS को सक्षम करता है। यह पब्लिक MX सर्वर के लिए सही सेटिंग है: यह उन भेजने वालों को STARTTLS की जानकारी देता है जो इसे सपोर्ट करते हैं, जबकि उन भेजने वालों से भी प्लेन कनेक्शन स्वीकार करता है जो नहीं करते। पब्लिक MX पर इसे encrypt पर सेट न करें, क्योंकि इससे केवल-प्लेन भेजने वालों का वैध मेल रिजेक्ट हो जाएगा। (पुराना smtpd_use_tls = yes स्विच डिप्रीकेटेड है; smtpd_tls_security_level इसकी जगह लेता है।)
  • चाहे आप इसे smtpd_tls_chain_files (विकल्प A) या smtpd_tls_cert_file (विकल्प B) के माध्यम से डिलीवर करें, फुल-चेन सर्टिफिकेट (आपका सर्टिफिकेट प्लस इंटरमीडिएट्स) का उपयोग करें। केवल लीफ सर्टिफिकेट परोसने से रिसीविंग एंड पर चेन-वैलिडेशन विफलताएं होती हैं।
  • मॉडर्न Postfix पहले से ही डिफ़ॉल्ट रूप से SSLv2, SSLv3, और कमजोर सिफर्स को डिसेबल कर देता है, इसलिए इनबाउंड पोर्ट-25 ट्रैफिक के लिए आपको अतिरिक्त एक्सक्लूजन लिस्ट की आवश्यकता नहीं है।

सबमिशन सर्विस को सुरक्षित करें (पोर्ट 587)

जब आपके अपने यूज़र्स Postfix के माध्यम से मेल भेजते हैं (Outlook, Thunderbird, Apple Mail आदि के जरिए), तो वे submission पोर्ट 587 पर कनेक्ट होते हैं, न कि पोर्ट 25 पर, जो सर्वर-टू-सर्वर डिलीवरी के लिए आरक्षित है। क्योंकि केवल आपके प्रमाणित यूज़र्स ही इस पोर्ट का उपयोग करते हैं, आप सुरक्षित रूप से सख्त नियम लागू कर सकते हैं: TLS आवश्यक बनाएं और न्यूनतम प्रोटोकॉल TLS 1.2 सेट करें।

/etc/postfix/master.cf खोलें, सुनिश्चित करें कि submission सर्विस सक्षम है, और नीचे दिए गए ओवरराइड्स जोड़ें:

submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_mandatory_protocols=>=TLSv1.2

कुछ विवरण जो लोगों को उलझा देते हैं:

  • smtpd_tls_mandatory_protocols केवल तभी प्रभावी होता है जब सिक्योरिटी लेवल encrypt (mandatory TLS) हो, जो यहां पोर्ट 587 पर सटीक रूप से लागू होता है। पोर्ट 25 पर opportunistic TLS (सिक्योरिटी लेवल may) के लिए, समान विकल्प smtpd_tls_protocols होगा, लेकिन पब्लिक MX पर आम तौर पर आप इसे Postfix के डिफ़ॉल्ट पर छोड़ देते हैं, ताकि पुराने भेजने वालों को नकारा न जाए।
  • संक्षिप्त >=TLSv1.2 सिंटैक्स के लिए Postfix 3.6 या उससे नया आवश्यक है और >= तथा वर्शन के बीच कोई स्पेस नहीं होना चाहिए। Postfix 3.4 या 3.5 पर, इसके बजाय एक्सक्लूजन फॉर्म का उपयोग करें: smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
  • master.cf में, -o ओवरराइड में = के आगे-पीछे कोई स्पेस नहीं होता (उदाहरण के लिए -o smtpd_tls_security_level=encrypt), जबकि main.cf में आप key = value स्पेस के साथ लिखते हैं।

वैकल्पिक: पोर्ट 465 पर implicit TLS। कई मॉडर्न क्लाइंट्स पोर्ट 465 (SMTPS / “submissions”) को प्राथमिकता देते हैं, जो शुरुआत से ही पूरे सेशन को TLS में रैप करता है। RFC 8314 इसका 587 के साथ समर्थन करता है। इसे ऑफर करने के लिए, master.cf में smtps सर्विस को wrapper mode के साथ सक्षम करें:

smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes

स्टेप 4: Postfix को रीलोड करें

रीलोड करने से पहले, यह अच्छी प्रैक्टिस है कि कॉन्फिगरेशन में सिंटैक्स गलतियों की जांच कर लें:

sudo postfix check

यदि यह कुछ भी नहीं लौटाता है, तो बदलावों को लागू करें। रीलोड सक्रिय कनेक्शनों को बाधित किए बिना कॉन्फिगरेशन को फिर से पढ़ता है:

sudo systemctl reload postfix

systemd के बिना सिस्टम पर, समान कमांड है:

sudo postfix reload

स्टेप 5: सर्टिफिकेट को वेरिफाई करें

OpenSSL के साथ पुष्टि करें कि Postfix सही सर्टिफिकेट और चेन परोस रहा है। yourdomain.com को अपने मेल सर्वर के होस्टनेम से बदलें:

openssl s_client -starttls smtp -connect yourdomain.com:25 -servername yourdomain.com </dev/null 
| openssl x509 -noout -issuer -subject -dates

आउटपुट में आपके सर्वर सर्टिफिकेट का सब्जेक्ट, उसका इश्यूअर (CA), और वैलिडिटी तारीखें दिखनी चाहिए। सबमिशन सर्विस को टेस्ट करने के लिए, पोर्ट को 587 में बदलें (यह भी STARTTLS का उपयोग करता है) या, implicit-TLS पोर्ट 465 के लिए, -starttls smtp को हटा दें और सीधे पोर्ट 465 से कनेक्ट करें। बधाई हो, आपने सफलतापूर्वक Postfix पर SSL सर्टिफिकेट इंस्टॉल कर लिया है।

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

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

Postfix के लिए सबसे अच्छा SSL सर्टिफिकेट कहाँ से खरीदें?

आप सही जगह पहुँच गए हैं। SSL Dragon पर, हम बाजार में सबसे कम कीमतों पर सबसे व्यापक SSL प्रोडक्ट्स की रेंज ऑफर करते हैं, और हमारे सभी सर्टिफिकेट Postfix मेल ट्रांसफर एजेंट के साथ संगत हैं।

कौन सा सर्टिफिकेट चुनें, यह तय नहीं कर पा रहे? हमारा SSL Wizard आपके मेल सर्वर के लिए सही प्रोडक्ट ढूंढना जल्दी और आसान बनाता है।

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

Postfix SSL सर्टिफिकेट के लिए किस फ़ाइल का उपयोग करता है?

TLS को /etc/postfix/main.cf में कॉन्फिगर किया जाता है। Postfix 3.4 और नए वर्शन पर, अनुशंसित डायरेक्टिव smtpd_tls_chain_files है, जो एक सिंगल PEM फ़ाइल की ओर इंगित करता है जिसमें प्राइवेट की, सर्वर सर्टिफिकेट, और इंटरमीडिएट्स होते हैं। पुराने वर्शन पर, आप इसके बजाय smtpd_tls_cert_file (एक फुल-चेन सर्टिफिकेट) और smtpd_tls_key_file (प्राइवेट की) को अलग-अलग सेट करते हैं। पोर्ट 587 और 465 के लिए प्रति-सर्विस ओवरराइड्स /etc/postfix/master.cf में होते हैं।

Postfix चेन फ़ाइल के लिए सही क्रम क्या है?

For smtpd_tls_chain_files के लिए, क्रम है सबसे पहले प्राइवेट की, फिर सर्वर (लीफ) सर्टिफिकेट, फिर इंटरमीडिएट सर्टिफिकेट(स):
cat privkey.key server.crt intermediate.pem > /etc/postfix/rsachain.pem
यदि क्रम गलत है, तो Postfix चेन लोड करने में विफल हो जाएगा। रूट CA सर्टिफिकेट शामिल न करें; क्लाइंट्स पहले से ही इस पर भरोसा करते हैं।

मुझे smtpd_tls_security_level के लिए “may” या “encrypt” का उपयोग करना चाहिए?

पोर्ट 25 पर इनबाउंड मेल के लिए may (opportunistic TLS) का उपयोग करें। एक पब्लिक MX को उन भेजने वालों से मेल स्वीकार करना चाहिए जो TLS को सपोर्ट नहीं करते, और encrypt उन्हें रिजेक्ट कर देगा, जिससे ईमेल खो जाएगा। encrypt (mandatory TLS) को पोर्ट 587 पर प्रमाणित सबमिशन सर्विस के लिए आरक्षित रखें, जहां केवल आपके अपने यूज़र्स ही कनेक्ट होते हैं।

क्या मुझे Postfix को रीस्टार्ट करना है या रीलोड करना है?

सर्टिफिकेट और TLS बदलावों के लिए एक रीलोड ही काफी है; sudo systemctl reload postfix (या sudo postfix reload) चलाएं। रीलोड करना सक्रिय कनेक्शनों को गिराए बिना कॉन्फिगरेशन को फिर से पढ़ता है। प्रभावी होने से पहले सिंटैक्स एरर पकड़ने के लिए पहले sudo postfix check चलाएं।

मैं यह कैसे जांचूं कि Postfix सर्टिफिकेट परोस रहा है?

OpenSSL के साथ कनेक्ट करें और वह सर्टिफिकेट पढ़ें जो Postfix STARTTLS के माध्यम से प्रस्तुत करता है:
openssl s_client -starttls smtp -connect yourdomain.com:25 -servername yourdomain.com </dev/null | openssl x509 -noout -issuer -subject -dates
यह सर्टिफिकेट का सब्जेक्ट, इश्यूअर, और वैलिडिटी तारीखें प्रिंट करता है। चेन पूर्ण है, इसकी पुष्टि करने के लिए आप हमारे SSL tools के साथ पूरा स्कैन भी चला सकते हैं।

निष्कर्ष

Postfix पर SSL सर्टिफिकेट इंस्टॉल करने का मतलब है एक फुल-चेन PEM फ़ाइल असेंबल करना, main.cf को smtpd_tls_chain_files (या पुराने smtpd_tls_cert_file / smtpd_tls_key_file जोड़े) की ओर इंगित करना, इनबाउंड मेल के लिए smtpd_tls_security_level = may सेट करना, पोर्ट 587 पर सबमिशन सर्विस को सख्त करना, sudo postfix check के साथ कॉन्फिग की जांच करना, और Postfix को रीलोड करना।

पहले सर्टिफिकेट की जरूरत है? हमारे SSL सर्टिफिकेट ब्राउज़ करें।

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

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

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

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