यह गाइड आपको OpenSSL कमांड लाइन का उपयोग करके qmail पर CSR (Certificate Signing Request) कैसे जनरेट करें दिखाती है। Qmail (और इसका सक्रिय रूप से मेंटेन किया जा रहा फोर्क, notqmail) में कोई बिल्ट-इन CSR टूल शामिल नहीं है। आप OpenSSL का उपयोग करके एक साथ दो फाइलें बनाते हैं: एक प्राइवेट की जो सर्वर पर रहती है, और CSR जो आप अपने Certificate Authority (CA) को सबमिट करते हैं।
CSR में वह मेल होस्टनेम एन्कोड होता है जो आपका सर्वर STARTTLS के दौरान प्रस्तुत करता है, आपकी संस्था का विवरण, और की का पब्लिक हिस्सा। संबंधित प्राइवेट की सर्वर से कभी बाहर नहीं जाती। यदि आप इसे खो देते हैं, तो जारी किया गया सर्टिफिकेट अनुपयोगी हो जाता है और आपको एक नई जोड़ी जनरेट करनी होगी।
qmail बनाम notqmail पर एक नोट: मूल qmail को 1998 में Daniel J. Bernstein ने फ्रीज कर दिया था और उसके बाद से इसे कोई अपस्ट्रीम अपडेट नहीं मिला है। notqmail (नवीनतम रिलीज़: 1.09, मई 2024) वह कम्युनिटी-मेंटेन फोर्क है जो सुरक्षा फिक्स, वर्तमान बिल्ड कम्पैटिबिलिटी और निरंतर पोर्टेबिलिटी कार्य जोड़ता है। TLS इसका हिस्सा नहीं है: notqmail पर, मूल qmail की तरह ही, STARTTLS एक एक्सटर्नल पैच से आता है, और 1.09 रिलीज़ नोट्स में दर्ज है कि मौजूदा smtp-tls पैच उस रिलीज़ पर लागू नहीं होता और एक नए अपस्ट्रीम पैच की आवश्यकता है। सर्टिफिकेट ऑर्डर करने से पहले आप जो रिलीज़ चला रहे हैं उसके पैच स्टेटस की जांच करें। CSR जनरेशन प्रक्रिया दोनों के लिए समान है, क्योंकि यह किसी qmail बाइनरी के बजाय OpenSSL का उपयोग करती है। यदि आप अभी भी मूल qmail चला रहे हैं, तो चल रहे सुरक्षा समर्थन के लिए notqmail या Postfix पर माइग्रेट करने पर विचार करें।
पूर्वापेक्षाएं
- qmail (या notqmail) चलाने वाले सर्वर पर रूट या sudo एक्सेस।
- OpenSSL इंस्टॉल होना चाहिए। यह हर मुख्यधारा Linux और BSD डिस्ट्रीब्यूशन के बेस सिस्टम में शामिल आता है।
openssl versionसे जांच करें। - वह पूरी तरह क्वालिफाइड मेल होस्टनेम जो आप सर्टिफिकेट पर चाहते हैं, उदाहरण के लिए mail.example.com। यह उस MX रेकॉर्ड से मेल खाना चाहिए जिससे क्लाइंट STARTTLS पर कनेक्ट होते हैं, न कि केवल बेयर एपेक्स डोमेन से।
चरण 1: की और CSR के लिए एक डायरेक्टरी तैयार करें
Qmail-smtpd अपना TLS सर्टिफिकेट /var/qmail/control/servercert.pem से पढ़ता है, जो वह पथ है जिसे TLS पैच हार्ड-कोड करता है। की मैटेरियल के लिए एक सबडायरेक्टरी बनाएं और इसे रूट तक सीमित करें:
sudo mkdir -p /var/qmail/control/ssl
sudo chmod 700 /var/qmail/control/ssl
cd /var/qmail/control/ssl
आप की और CSR इस डायरेक्टरी के भीतर जनरेट करेंगे। CA द्वारा सर्टिफिकेट जारी करने के बाद, आप फाइलों को उस servercert.pem में जोड़ते हैं जिसे qmail-smtpd स्टार्टअप पर पढ़ता है।
चरण 2: प्राइवेट की और CSR जनरेट करें
नीचे दिया गया कमांड चलाएं। यह एक ही चरण में प्राइवेट की और CSR बनाता है और उस Subject Alternative Name (SAN) को शामिल करता है जो आधुनिक मेल क्लाइंट और CA आवश्यक मानते हैं। SAN में मेल होस्टनेम (जिसकी तरफ आपका MX रेकॉर्ड इशारा करता है) सूचीबद्ध होना चाहिए:
sudo openssl req -new -newkey rsa:2048 -nodes
-keyout /var/qmail/control/ssl/mail.example.com.key
-out /var/qmail/control/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 प्राइवेट की जनरेट करता है। 2048 बिट्स पब्लिक सर्टिफिकेट के लिए वर्तमान न्यूनतम है; आप बड़ी की के लिए rsa:4096 का उपयोग कर सकते हैं।
- -nodes प्राइवेट की को अनएन्क्रिप्टेड (पासफ्रेज़ के बिना) छोड़ता है, ताकि qmail-smtpd इसे स्टार्टअप पर बिना प्रॉम्प्ट के लोड कर सके।
- -keyout प्राइवेट की लिखता है। इस फाइल को गोपनीय रखें और इसे किसी को भी न भेजें, 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 /var/qmail/control/ssl/mail.example.com.key
-out /var/qmail/control/ssl/mail.example.com.csr
-addext "subjectAltName=DNS:mail.example.com"
जब पूछा जाए, तो challenge password और optional company name को Enter दबाकर खाली छोड़ दें। CA इन फील्ड्स को अनदेखा करते हैं, और एक challenge password बाद में समस्याएं पैदा करता है।
एक से अधिक होस्टनेम को शामिल करना
यदि एक ही qmail इंस्टेंस एक से अधिक नाम पर उत्तर देता है (उदाहरण के लिए, mail.example.com और smtp.example.com दोनों पर), तो SAN मूल्य में हर होस्टनेम को कॉमा से अलग करके सूचीबद्ध करें:
-addext "subjectAltName=DNS:mail.example.com,DNS:smtp.example.com"
Common Name अभी भी प्राइमरी मेल होस्टनेम होना चाहिए। बेयर एपेक्स डोमेन को SAN में जोड़ना केवल तब उपयोगी है जब मेल क्लाइंट कभी इससे सीधे कनेक्ट होते हैं; यदि आपका MX रेकॉर्ड किसी सब-होस्टनेम की तरफ इशारा करता है, तो आपको सर्टिफिकेट पर एपेक्स की आवश्यकता नहीं है।
ECDSA की पसंद करते हैं?
ECDSA कीज़ समान सुरक्षा स्तर पर RSA से छोटी और तेज होती हैं और हर वर्तमान मेल क्लाइंट और CA द्वारा समर्थित हैं। इसके बजाय P-256 (prime256v1) की और CSR जनरेट करने के लिए, -newkey आर्गुमेंट बदलें:
sudo openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes
-keyout /var/qmail/control/ssl/mail.example.com.key
-out /var/qmail/control/ssl/mail.example.com.csr
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=mail.example.com"
-addext "subjectAltName=DNS:mail.example.com"
ध्यान दें कि DJB के TLS पैच के साथ मूल qmail ECDSA का समर्थन नहीं कर सकता। यदि आप वर्तमान OpenSSL के साथ notqmail चलाते हैं, तो ECDSA बिना किसी समस्या के काम करता है।
चरण 3: प्राइवेट की की सुरक्षा करें
प्राइवेट की को इस तरह सीमित करें कि केवल रूट ही इसे पढ़ सके। रॉ की फाइल केवल तब आवश्यक होती है जब आप बाद में संयुक्त servercert.pem बनाते हैं, इसलिए रूट स्वामित्व और मोड 600 सही हैं:
sudo chown root:root /var/qmail/control/ssl/mail.example.com.key
sudo chmod 600 /var/qmail/control/ssl/mail.example.com.key
CSR फाइल गोपनीय नहीं है (इसमें केवल पब्लिक की और आपके सब्जेक्ट विवरण होते हैं), लेकिन इसे उसी लॉक्ड-डाउन डायरेक्टरी में रखने से लेआउट व्यवस्थित रहता है।
चरण 4: CSR सत्यापित करें
रिक्वेस्ट सबमिट करने से पहले, पुष्टि करें कि इसमें सही होस्टनेम और SAN है और इसका सिग्नेचर वैध है:
openssl req -noout -text -verify -in /var/qmail/control/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 /var/qmail/control/ssl/mail.example.com.csr
ब्लॉक इस तरह दिखता है। पहली लाइन से आखिरी तक सब कुछ कॉपी करें, जिसमें BEGIN और END मार्कर के दोनों तरफ पांच हाइफन शामिल हैं:
-----BEGIN CERTIFICATE REQUEST-----
MIIC...base64-encoded data...AB
-----END CERTIFICATE REQUEST-----
उस ब्लॉक को अपने SSL ऑर्डर फॉर्म में पेस्ट करें। CA द्वारा CSR को सत्यापित करने और सर्टिफिकेट जारी करने के बाद, इसे तैनात करने के लिए हमारी qmail SSL इंस्टॉलेशन गाइड का पालन करें। .key फाइल को सर्वर पर रखें: STARTTLS सक्षम करने के लिए इसे जारी किए गए सर्टिफिकेट के साथ आवश्यक है, और आपको इसे CA या किसी और को कभी नहीं भेजना चाहिए।
यदि आप कमांड लाइन का उपयोग नहीं करना चाहते, तो हमारे CSR Generator से रिक्वेस्ट बनाएं और परिणाम को अपने ऑर्डर में पेस्ट करें। जनरेटर एक मैचिंग प्राइवेट की लौटाता है जिसे आप सर्वर पर उसी पथ पर रखते हैं।
qmail में फाइलें कहां जाती हैं
संदर्भ के लिए, यह है कि आपके द्वारा जस्ट जनरेट की गई फाइलें qmail में कैसे जुड़ी होती हैं जब CA सर्टिफिकेट और इंटरमीडिएट (CA बंडल) लौटाता है। Qmail-smtpd अपना TLS मैटेरियल /var/qmail/control/servercert.pem पर एक एकल संयुक्त PEM फाइल से पढ़ता है। इस फाइल में प्राइवेट की, सर्वर सर्टिफिकेट, और इंटरमीडिएट सर्टिफिकेट होना जरूरी है, उस क्रम में जोड़े गए:
cat mail.example.com.key mail.example.com.crt intermediate.pem
> /var/qmail/control/servercert.pem
sudo chown root:nofiles /var/qmail/control/servercert.pem
sudo chmod 640 /var/qmail/control/servercert.pem
nofiles ग्रुप उस qmaild यूज़र के लिए डिफ़ॉल्ट ग्रुप है जिसके रूप में qmail-smtpd चलता है। मोड 640 qmaild को ग्रुप मेंबरशिप के माध्यम से फाइल पढ़ने देता है जबकि इसे अन्य यूज़र्स के लिए अपठनीय रखता है। यदि आपके सिस्टम में qmaild के लिए एक अलग ग्रुप का उपयोग होता है, तो chown कमांड में वह ग्रुप नाम बदल दें।
Qmail-smtpd STARTTLS केवल तब प्रदान करता है जब इसे TLS समर्थन के साथ बनाया गया हो, जो न तो मूल qmail न ही notqmail अपने आप में शामिल करता है। दोनों पर सामान्य मार्ग Frederik Vermeulen का qmail-tls पैच है: यही वह चीज़ है जो qmail-smtpd को servercert.pem पढ़ने और उस फाइल के मौजूद होते ही STARTTLS विज्ञापित करने देती है। दूसरा मार्ग Erwin Hoffmann का s/qmail है जो ucspi-ssl के साथ काम करता है, जहां sslserver /service/qmail-smtpd/run में UCSPITLS एनवायरनमेंट वेरिएबल एक्सपोर्ट करता है और की एक अलग serverkey.pem में रहती है, इसलिए ऊपर दिया गया सिंगल-फाइल लेआउट वहां लागू नहीं होता। संयुक्त PEM फाइल रखने के बाद, qmail-smtpd सेवा को पुनरारंभ करें:
sudo svc -t /service/qmail-smtpd
OpenSSL के साथ सर्टिफिकेट चेन को सत्यापित करने सहित पूरा इंस्टॉल वॉक-थ्रू, हमारी qmail SSL इंस्टॉलेशन गाइड में है।
इंस्टॉलेशन के बाद STARTTLS सत्यापित करें
सर्टिफिकेट इंस्टॉल हो जाने के बाद, पुष्टि करें कि आपका सर्वर STARTTLS विज्ञापित करता है और एक वैध चेन प्रदान करता है:
openssl s_client -connect mail.example.com:25 -starttls smtp -servername mail.example.com
Verify return code: 0 (ok) देखें और पुष्टि करें कि सब्जेक्ट और इशूअर आपके सर्टिफिकेट से मेल खाते हैं। आप सर्टिफिकेट चेन और एक्सपायरेशन तिथि की विज़ुअल रिपोर्ट के लिए हमारे SSL Checker से सर्वर को स्कैन भी कर सकते हैं।
अन्य मेल प्लेटफॉर्म पर CSR जनरेट करें
कोई अलग मेल सर्वर चला रहे हैं? हमारी अन्य CSR गाइड्स देखें:
आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!
तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10


