यह गाइड आपको दिखाती है कि OpenSSL कमांड लाइन का उपयोग करके Postfix पर CSR (सर्टिफिकेट साइनिंग रिक्वेस्ट) कैसे जनरेट करें। Postfix स्वयं keys या CSR जनरेट नहीं करता; यह उन फाइलों का उपयोग करता है जो OpenSSL बनाता है और उन्हें /etc/postfix/main.cf से संदर्भित करता है। आप एक ही कमांड चलाते हैं जो एक साथ दो फाइलें बनाता है: एक प्राइवेट key जो सर्वर पर रहती है, और CSR जो आप अपने सर्टिफिकेट अथॉरिटी (CA) को सबमिट करते हैं।
CSR उस होस्टनेम को एनकोड करता है जिसे आपका MTA STARTTLS पर प्रस्तुत करता है, आपके संगठन का विवरण, और key का पब्लिक हिस्सा। मिलती-जुलती प्राइवेट key कभी भी सर्वर नहीं छोड़ती। यदि आप इसे खो देते हैं, तो जारी किया गया सर्टिफिकेट अनुपयोगी हो जाता है और आपको फिर से शुरू करना पड़ता है।
आवश्यक शर्तें
- Postfix चलाने वाले सर्वर पर root या sudo एक्सेस।
- OpenSSL इंस्टॉल होना चाहिए। यह हर मुख्यधारा के Linux डिस्ट्रीब्यूशन के बेस सिस्टम में शामिल होता है;
openssl versionसे जांचें। - वह फुली क्वालिफाइड मेल होस्टनेम जिसे आप सर्टिफिकेट पर चाहते हैं, उदाहरण के लिए mail.example.com। यह उस MX रिकॉर्ड से मेल खाना चाहिए जिससे क्लाइंट STARTTLS के जरिए कनेक्ट होते हैं, न कि साधारण apex डोमेन से।
चरण 1: key और CSR के लिए एक डायरेक्टरी तैयार करें
Postfix के TLS मटेरियल को /etc/postfix/ के तहत अपनी खुद की डायरेक्टरी में रखें ताकि परमिशन प्रबंधित करना आसान हो। इसे बनाएं और इसे root तक सीमित करें:
sudo mkdir -p /etc/postfix/ssl
sudo chmod 700 /etc/postfix/ssl
cd /etc/postfix/ssl
आप इस डायरेक्टरी के अंदर key और CSR जनरेट करेंगे, फिर CA द्वारा सर्टिफिकेट जारी करने के बाद उन्हें main.cf से संदर्भित करेंगे।
चरण 2: प्राइवेट key और CSR जनरेट करें
नीचे दिया गया कमांड चलाएं। यह एक ही चरण में प्राइवेट key और CSR बनाता है और Subject Alternative Name (SAN) शामिल करता है जिसकी आधुनिक ब्राउज़र, मेल क्लाइंट और CA मांग करते हैं। SAN में मेल होस्टनेम (जिस पर आपका MX रिकॉर्ड इंगित करता है) सूचीबद्ध होना चाहिए, न कि साधारण apex डोमेन:
sudo openssl req -new -newkey rsa:2048 -nodes
-keyout /etc/postfix/ssl/mail.example.com.key
-out /etc/postfix/ssl/mail.example.com.csr
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=mail.example.com"
-addext "subjectAltName=DNS:mail.example.com"
यहां प्रत्येक भाग जो करता है वह है:
- req -new एक नया सर्टिफिकेट साइनिंग रिक्वेस्ट बनाता है।
- -newkey rsa:2048 एक नई 2048-बिट RSA प्राइवेट key जनरेट करता है। 2048 बिट्स सार्वजनिक सर्टिफिकेट के लिए वर्तमान न्यूनतम है; आप एक बड़ी key के लिए rsa:4096 का उपयोग कर सकते हैं।
- -nodes प्राइवेट key को अनएन्क्रिप्टेड (कोई पासफ्रेज नहीं) छोड़ता है, ताकि Postfix बूट पर बिना प्रॉम्प्ट के इसे लोड कर सके।
- -keyout प्राइवेट key लिखता है। इस फाइल को निजी रखें और इसे कभी भी किसी को न भेजें, CA को भी नहीं।
- -out वह CSR लिखता है जिसे आप CA को सबमिट करते हैं।
- -subj सब्जेक्ट फील्ड्स को इनलाइन भरता है ताकि कमांड बिना इंटरैक्टिव प्रॉम्प्ट के चले। CN (Common Name) को अपने मेल होस्टनेम पर सेट करें।
- -addext “subjectAltName=…” SAN एंट्री जोड़ता है। CA SAN सूची के विरुद्ध जारी करते हैं, इसलिए मेल होस्टनेम यहां दिखाई देना चाहिए।
mail.example.com को उस वास्तविक होस्टनेम से बदलें जिससे क्लाइंट कनेक्ट होते हैं (अक्सर आपके MX रिकॉर्ड के समान नाम), और अपने संगठन से मेल खाने के लिए -subj मानों को संपादित करें। दो अक्षरों वाला देश कोड (C) अपरकेस में होना चाहिए, उदाहरण के लिए US या GB। डोमेन-वैलिडेटेड (DV) सर्टिफिकेट के लिए, संगठन फील्ड्स की पुष्टि नहीं होती, लेकिन कमांड को अभी भी वैध मानों की आवश्यकता होती है। आधुनिक OpenSSL डिफ़ॉल्ट रूप से CSR पर SHA-256 से साइन करता है, जिसकी हर सार्वजनिक CA मांग करता है।
यदि आप -subj के बजाय फील्ड्स को इंटरैक्टिव रूप से भरना पसंद करते हैं, तो उस लाइन को हटा दें और OpenSSL आपसे प्रत्येक मान के लिए प्रॉम्प्ट करेगा:
sudo openssl req -new -newkey rsa:2048 -nodes
-keyout /etc/postfix/ssl/mail.example.com.key
-out /etc/postfix/ssl/mail.example.com.csr
-addext "subjectAltName=DNS:mail.example.com"
जब प्रॉम्प्ट किया जाए, तो Enter दबाकर challenge password और optional company name को खाली छोड़ दें। CA उन फील्ड्स को नज़रअंदाज़ कर देते हैं, और एक challenge password बाद में समस्याएं पैदा करता है।
एक से अधिक होस्टनेम को कवर करना
यदि वही Postfix इंस्टेंस एक से अधिक नामों पर उत्तर देता है (उदाहरण के लिए, mail.example.com और smtp.example.com दोनों, या मेल और वेबमेल के लिए साझा सर्टिफिकेट), तो कॉमा से अलग करते हुए SAN मान में हर होस्टनेम सूचीबद्ध करें:
-addext "subjectAltName=DNS:mail.example.com,DNS:smtp.example.com,DNS:webmail.example.com"
Common Name को अभी भी प्राथमिक मेल होस्टनेम होना चाहिए। साधारण apex डोमेन को SAN में जोड़ना तभी उपयोगी है जब मेल क्लाइंट कभी सीधे उससे कनेक्ट होते हों; यदि आपका MX रिकॉर्ड किसी सब-होस्टनेम की ओर इशारा करता है, तो आपको सर्टिफिकेट पर apex की आवश्यकता नहीं है।
ECDSA key पसंद करते हैं?
ECDSA keys समान सुरक्षा स्तर पर RSA की तुलना में छोटी और तेज़ होती हैं और हर मौजूदा मेल क्लाइंट और CA द्वारा समर्थित हैं। इसके बजाय P-256 (prime256v1) key और CSR जनरेट करने के लिए, -newkey तर्क को बदलें:
sudo openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes
-keyout /etc/postfix/ssl/mail.example.com.key
-out /etc/postfix/ssl/mail.example.com.csr
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=mail.example.com"
-addext "subjectAltName=DNS:mail.example.com"
चरण 3: प्राइवेट key को सुरक्षित करें
प्राइवेट key को इस तरह लॉक करें कि केवल root ही इसे पढ़ सके। Postfix अपने अधिकार छोड़ने से पहले अपना TLS मटेरियल खोलता है, इसलिए root ownership और मोड 600 दोनों सही हैं और आवश्यक हैं:
sudo chown root:root /etc/postfix/ssl/mail.example.com.key
sudo chmod 600 /etc/postfix/ssl/mail.example.com.key
CSR फाइल गुप्त नहीं है (इसमें केवल पब्लिक key और आपके सब्जेक्ट विवरण होते हैं), लेकिन इसे उसी लॉक-डाउन डायरेक्टरी में रखने से लेआउट व्यवस्थित रहता है।
चरण 4: CSR को सत्यापित करें
अनुरोध सबमिट करने से पहले, पुष्टि करें कि इसमें सही होस्टनेम और SAN है और इसका सिग्नेचर मान्य है। यह कमांड डिकोड की गई सामग्री प्रिंट करता है और स्थानीय रूप से सिग्नेचर की जांच करता है:
openssl req -noout -text -verify -in /etc/postfix/ssl/mail.example.com.csr
आउटपुट में verify OK देखें, जांचें कि Subject लाइन Common Name के रूप में आपका मेल होस्टनेम दिखाती है, और पुष्टि करें कि X509v3 Subject Alternative Name सेक्शन हर उस होस्टनेम को सूचीबद्ध करता है जिसकी आप अपेक्षा करते हैं। यदि कोई SAN गायब है, तो सही -addext मान के साथ CSR को फिर से जनरेट करें: एक CA जारी करने के बाद होस्टनेम नहीं जोड़ सकता। आप इन फील्ड्स की जांच ब्राउज़र में करने के लिए CSR को हमारे ऑनलाइन CSR Decoder में भी पेस्ट कर सकते हैं।
चरण 5: CSR सबमिट करें
CSR फाइल खोलें और इसकी पूरी सामग्री कॉपी करें, BEGIN और END लाइनों सहित:
cat /etc/postfix/ssl/mail.example.com.csr
ब्लॉक इस तरह दिखता है। पहली लाइन से लेकर आखिरी लाइन तक सब कुछ कॉपी करें, BEGIN और END मार्कर्स के दोनों ओर पांच हाइफ़न सहित:
-----BEGIN CERTIFICATE REQUEST-----
MIIC...base64-encoded data...AB
-----END CERTIFICATE REQUEST-----
उस ब्लॉक को अपने SSL ऑर्डर फॉर्म में पेस्ट करें। CA द्वारा CSR को वैलिडेट करने और सर्टिफिकेट जारी करने के बाद, इसे डिप्लॉय करने के लिए हमारे Postfix SSL इंस्टॉलेशन निर्देश का पालन करें। .key फाइल को सर्वर पर रखें: STARTTLS सर्व करने के लिए आपको इसे जारी किए गए सर्टिफिकेट के साथ चाहिए, और आपको इसे कभी भी CA या किसी और को नहीं भेजना चाहिए।
यदि आप कमांड लाइन का उपयोग नहीं करना चाहते हैं, तो हमारे CSR Generator के साथ अनुरोध बनाएं और परिणाम को अपने ऑर्डर में पेस्ट करें। जनरेटर एक मिलती-जुलती प्राइवेट key लौटाता है जिसे आप सर्वर पर उसी पथ पर रखते हैं।
Postfix में फाइलें कहां जाती हैं
संदर्भ के लिए, यह है कि आपने अभी जो फाइलें जनरेट कीं वे CA द्वारा सर्टिफिकेट और इंटरमीडिएट (CA बंडल) लौटाने के बाद Postfix में कैसे जोड़ी जाती हैं। Postfix 3.4 और नए संस्करणों पर, अनुशंसित सिंगल-डायरेक्टिव फॉर्म एक PEM फाइल लेता है जिसमें प्राइवेट key के बाद पूरी सर्टिफिकेट चेन होती है:
cat mail.example.com.key mail.example.com.crt intermediate.pem
> /etc/postfix/ssl/mail.example.com.chain.pem
sudo chmod 600 /etc/postfix/ssl/mail.example.com.chain.pem
फिर /etc/postfix/main.cf में:
smtpd_tls_chain_files = /etc/postfix/ssl/mail.example.com.chain.pem
smtpd_tls_security_level = may
3.4 से पुराने Postfix पर, लीगेसी डायरेक्टिव जोड़े का उपयोग करें, key और फुल-चेन सर्टिफिकेट को अलग-अलग फाइलों में रखते हुए:
smtpd_tls_cert_file = /etc/postfix/ssl/mail.example.com.fullchain.crt
smtpd_tls_key_file = /etc/postfix/ssl/mail.example.com.key
smtpd_tls_security_level = may
पूरी इंस्टॉल वॉक-थ्रू, जिसमें पोर्ट 587 पर सबमिशन सर्विस और OpenSSL के साथ वेरिफिकेशन शामिल है, हमारी Postfix SSL इंस्टॉलेशन गाइड में मिलती है।
अन्य मेल प्लेटफ़ॉर्म पर CSR जनरेट करें
अलग मेल सर्वर या गेटवे चला रहे हैं? हमारी अन्य CSR गाइड देखें:
आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!
तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10


