bg-tutorials

मेल सर्वर पर ACME SSL प्रमाणपत्र स्थापित करने के लिए कैसे

इस गाइड में, आप सीखेंगे कि ACME + EAB का समर्थन करने वाले वाणिज्यिक प्रदाताओं का उपयोग करके मेल सर्वर, विशेष रूप से Postfix, Dovecot, और वैकल्पिक रूप से Exim पर ACME SSL प्रमाणपत्र कैसे स्थापित करें। हम आपके ACME खाते को पंजीकृत करने के लिए acme.sh का उपयोग करेंगे, आपके मेल होस्टनाम के लिए एक प्रमाण पत्र जारी करेंगे, और फिर उस प्रमाणपत्र को सीधे आपके मेल सर्वर के TLS कॉन्फ़िगरेशन में प्लग करेंगे।

मेल सर्वर ACME SSL

यह मार्गदर्शिका एक लिनक्स-आधारित मेल सर्वर और एक वाणिज्यिक CA मानती है जो EAB क्रेडेंशियल्स (कुंजी ID + HMAC) के साथ ACME निर्देशिका URL प्रदान करती है। चूंकि मेल वातावरण वितरण और होस्टिंग सेटअप में भिन्न होते हैं, इसलिए इसे एक स्पष्ट, विश्वसनीय खाका के रूप में मानें, लेकिन हमेशा अपने स्वयं के सर्वर के पथ, सेवा नाम और टीएलएस सेटिंग्स की जांच करें।


शुरू करने से पहले

यदि ये मूल बातें तैयार हैं तो आपके पास बहुत आसान समय होगा:

  • एक मेल होस्टनाम, उदाहरण के लिए mail.example.com, आपके मेल सर्वर की ओर इशारा करते हुए A/AAAA रिकॉर्ड के साथ
  • आपका MX रिकॉर्ड उस होस्टनाम की ओर इशारा करता है (सामान्य सेटअप)
  • sudo या root के साथ मेल सर्वर के लिए Shell/SSH का उपयोग
  • एक वाणिज्यिक CA खाता जो ACME निर्देशिका URL (जैसे https://acme.yourca.com/v2/acme), EAB कुंजी ID और EAB HMAC कुंजी प्रदान करता है
  • मेल स्टैक: SMTP के लिए पोस्टफिक्स/एक्ज़िम और IMAP/POP3 के लिए Dovecot

हम DNS-01 सत्यापन का उपयोग करेंगे क्योंकि यह तब भी काम करता है जब आपका मेल सर्वर सार्वजनिक वेबसाइट नहीं चलाता है और अक्सर उत्पादन में पसंद किया जाता है।


चरण 1: मेल सर्वर पर acme.sh स्थापित करें

आप ACME क्लाइंट को सीधे मेल सर्वर पर स्थापित करेंगे ताकि यह प्रमाणपत्रों को नवीनीकृत कर सके और उन्हें डिस्क पर लिख सके जहां पोस्टफिक्स/डोवकॉट/एक्ज़िम उन्हें पढ़ सके।

मेल सर्वर पर:

curl https://get.acme.sh | sh
source ~/.bashrc
acme.sh --version

यदि आपको कोई संस्करण संख्या दिखाई देती है, तो क्लाइंट स्थापित है और तैयार है। यदि लाइन काम नहीं करती है, तो source ~/.bashrc लॉग आउट करें और वापस जाएं, फिर से चलाएं acme.sh --version


चरण 2: अपना ACME खाता पंजीकृत करें (EAB के साथ)

इसके बाद, आपको अपने ACME खाते को उनके पैनल से EAB क्रेडेंशियल्स का उपयोग करके अपने व्यावसायिक CA के साथ पंजीकृत करना होगा। acme.sh के माध्यम से --eab-kid EAB का समर्थन करता है और .--eab-hmac-key

इसे मेल सर्वर पर चलाएँ:

acme.sh --register-account \
  --server https://acme.yourca.com/v2/acme \
  --eab-kid YOUR_EAB_KID \
  --eab-hmac-key YOUR_EAB_HMAC_KEY \
  --accountemail [email protected]

बदलें:

  • https://acme.yourca.com/v2/acme अपने CA के ACME निर्देशिका URL के साथ
  • YOUR_EAB_KID कुंजी आईडी के साथ
  • YOUR_EAB_HMAC_KEY HMAC कुंजी के साथ
  • [email protected] समाप्ति नोटिस के लिए अपने वास्तविक व्यवस्थापक ईमेल के साथ

आप प्रति खाते में एक बार ऐसा करते हैं। यदि कमांड विफल हो जाता है, तो यह लगभग हमेशा URL या EAB मानों में एक टाइपो होता है।


चरण 3: DNS-01 के माध्यम से प्रमाणपत्र जारी करें

अब आप उस होस्टनाम के लिए एक प्रमाणपत्र का अनुरोध करते हैं जिससे आपके उपयोगकर्ता कनेक्ट होंगे, उदाहरण के लिए mail.example.com (या , imap.example.com. smtp.example.com बस वह चुनें जिसे आप वास्तव में क्लाइंट कॉन्फ़िगरेशन में उपयोग करते हैं)।

प्रमाणपत्र जारी करें (मैनुअल डीएनएस)

चलाना:

acme.sh --issue \
  -d mail.example.com \
  --dns dns_manual \
  --server https://acme.yourca.com/v2/acme

--dns dns_manual बताता है कि acme.sh आप अपने DNS पैनल में मैन्युअल रूप से TXT रिकॉर्ड जोड़ेंगे।

क्लाइंट कुछ इस तरह आउटपुट करेगा:

Please add a TXT record:
_acme-challenge.mail.example.com → some-long-token-value

TXT रिकॉर्ड जोड़ें

अपने DNS प्रदाता के पैनल में, एक TXT रिकॉर्ड बनाएं:

  • नाम: _acme-challenge.mail.example.com
  • मान: द्वारा दिखाया गया टोकन acme.sh

DNS के प्रचार के लिए कुछ मिनट प्रतीक्षा करें, फिर इसके साथ सत्यापित करें:

dig TXT _acme-challenge.mail.example.com +short

यदि आप वहां टोकन देखते हैं, तो सत्यापन पूरा करने के लिए कमांड को acme.sh --issue फिर से चलाएं। जब यह सफल हो जाता है, acme.sh तो अपनी फ़ाइलों को ~/.acme.sh/mail.example.com/ के अंतर्गत संग्रहीत करता है।

उस निर्देशिका के अंदर आपके पास कम से कम होगा:

  • fullchain.cer – सर्टिफिकेट प्लस इंटरमीडिएट चेन
  • mail.example.com.key – निजी कुंजी
  • ca.cer – सीए प्रमाणपत्र (यदि आपका सीए इसे अलग से प्रदान करता है)

हम अगले चरणों में इनका उपयोग करेंगे।


चरण 4: ACME प्रमाणपत्र (SMTP) का उपयोग करने के लिए पोस्टफिक्स कॉन्फ़िगर करें

पोस्टफिक्स को यह जानने की जरूरत है कि आपका नया प्रमाणपत्र और कुंजी कहां रहती है। पोस्टफिक्स में TLS को smtpd_tls_cert_file और .smtpd_tls_key_file

सबसे पहले, फ़ाइलों को एक स्थिर स्थान पर कॉपी करें, उदाहरण के लिए:

sudo mkdir -p /etc/ssl/mail
sudo cp ~/.acme.sh/mail.example.com/fullchain.cer /etc/ssl/mail/mail-fullchain.cer
sudo cp ~/.acme.sh/mail.example.com/mail.example.com.key /etc/ssl/mail/mail.key
sudo chown root:root /etc/ssl/mail/*
sudo chmod 600 /etc/ssl/mail/mail.key

फिर पोस्टफिक्स को उनका उपयोग करने के लिए कहें:

sudo postconf -e 'smtpd_use_tls = yes'
sudo postconf -e 'smtpd_tls_security_level = may'
sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/mail/mail-fullchain.cer'
sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/mail/mail.key'
sudo postconf -e 'smtp_tls_security_level = may'
  • smtpd_* सेटिंग्स आवक मेल को नियंत्रित करती हैं (क्लाइंट आपको मेल भेजते हैं)
  • smtp_* सेटिंग्स जावक मेल को नियंत्रित करती हैं (आपका सर्वर दूसरों को मेल भेजता है)

परिवर्तन लागू करें:

sudo systemctl restart postfix

यदि आपका डिस्ट्रो अभी भी उपयोग करता है service, तो तदनुसार कमांड को समायोजित करें।


चरण 5: ACME प्रमाणपत्र (IMAP/POP3) का उपयोग करने के लिए Dovecot को कॉन्फ़िगर करें

डोवकॉट IMAP और POP3 को संभालता है। आप TLS को इंगित करके ssl_cert और उन्हीं ssl_key फ़ाइलों पर कॉन्फ़िगर करते हैं जिन्हें हमने अभी तैयार किया है।

डोवकॉट का एसएसएल कॉन्फ़िगरेशन खोलें:

sudo nano /etc/dovecot/conf.d/10-ssl.conf

इन पंक्तियों को अद्यतन (या जोड़ें):

ssl = yes
ssl_cert = </etc/ssl/mail/mail-fullchain.cer
ssl_key  = </etc/ssl/mail/mail.key

फ़ाइल सहेजें और डोवकोट को पुनः लोड करें:

sudo systemctl restart dovecot

अब TLS पर IMAP/POP3 वही वाणिज्यिक ACME प्रमाणपत्र प्रस्तुत करेगा।


वैकल्पिक: एक्ज़िम में एक ही प्रमाणपत्र का उपयोग करें

यदि आप Postfix के बजाय Exim अपने मेल सर्वर के रूप में उपयोग करते हैं, तो एकीकरण समान है। एक्ज़िम टीएलएस के लिए उपयोग और tls_certificate tls_privatekey विकल्प।

आपके Exim कॉन्फ़िगरेशन में (पथ डिस्ट्रो पर निर्भर करता है, अक्सर /etc/exim4/exim4.conf.template या विभाजित कॉन्फ़िगरेशन के तहत /etc/exim4/conf.d/), सेट करें:

tls_certificate = /etc/ssl/mail/mail-fullchain.cer
tls_privatekey  = /etc/ssl/mail/mail.key

फिर एक्ज़िम को पुनः लोड करें:

sudo systemctl restart exim4

यदि सेवा का नाम थोड़ा अलग है तो अपने वितरण pacakge दस्तावेज़ों की जाँच करें।


चरण 6: अपने मेल टीएलएस का परीक्षण करें

आप किसी भी अन्य मशीन से परीक्षण कर सकते हैं जिसमें ओपनएसएसएल स्थापित है।

परीक्षण SMTP (पोस्टफिक्स या एक्ज़िम)

openssl s_client -starttls smtp -connect mail.example.com:587 -showcerts

IMAP (कबूतर) का परीक्षण करें

openssl s_client -starttls imap -connect mail.example.com:143 -showcerts

यदि आउटपुट आपके व्यावसायिक CA और होस्टनाम से मेल खाता है, तो आप अच्छे हैं।


चरण 7: नवीनीकरण और पुनः लोड को स्वचालित रखें

acme.sh पहले से ही एक क्रॉन जॉब इंस्टॉल करता है जो दैनिक नवीनीकरण की जांच करता है। जब आपका प्रमाणपत्र समाप्त होने के करीब होता है, तो यह स्वचालित रूप से नवीनीकृत हो जाएगा और ~/.acme.sh/mail.example.com/ में फ़ाइलों को अपडेट कर देगा।

पोस्टफिक्स/डोवकॉट/एक्ज़िम को हमेशा नवीनतम संस्करण का उपयोग करने के लिए, आपके पास दो विकल्प हैं:

  1. ~/.acme.sh/mail.example.com/ में फ़ाइलों पर सीधे कॉन्फ़िगर करता है
    (उदाहरण के लिए smtpd_tls_cert_file = /root/.acme.sh/mail.example.com/fullchain.cer) और सुनिश्चित करें कि केवल रूट ही उन्हें पढ़ सकता है।
  2. एक छोटी परिनियोजन स्क्रिप्ट लिखें जो नवीनीकृत फ़ाइलों /etc/ssl/mail/ की प्रतिलिपि बनाती है और सर्वर को पुनरारंभ या पुनः लोड करती है।

स्क्रिप्ट का उदाहरण:

#!/usr/bin/env bash
DOMAIN="mail.example.com"
SRC="$HOME/.acme.sh/$DOMAIN"
DEST="/etc/ssl/mail"

sudo cp "$SRC/fullchain.cer" "$DEST/mail-fullchain.cer"
sudo cp "$SRC/$DOMAIN.key"   "$DEST/mail.key"
sudo chown root:root "$DEST/"*
sudo chmod 600 "$DEST/mail.key"

sudo systemctl restart postfix dovecot

यह स्क्रिप्ट नए जारी किए गए ACME प्रमाणपत्र और निजी कुंजी को आपके सर्वर की मेल SSL निर्देशिका में प्रतिलिपि बनाता है, सही स्वामित्व और अनुमतियाँ सेट करता है, और उसके बाद पोस्टफिक्स और Dovecot को पुनरारंभ करता है ताकि वे तुरंत अद्यतन किए गए प्रमाण पत्र का उपयोग करना प्रारंभ करें। प्लेसहोल्डर के बजाय अपने क्रेडेंशियल्स का उपयोग करें।

फिर इसे तार करें acme.sh:

acme.sh --install-cert -d mail.example.com \
  --key-file       ~/.acme.sh/mail.example.com/mail.example.com.key \
  --fullchain-file ~/.acme.sh/mail.example.com/fullchain.cer \
  --reloadcmd "/path/to/your/deploy-script.sh"

यहां से, नवीनीकरण स्वचालित रूप से होता है।


सामान्य प्रश्न और समस्या निवारण

जब आप पहली बार ऐसा करते हैं तो कुछ समस्याएं आ सकती हैं। यहां बताया गया है कि उनसे जल्दी कैसे निपटा जाए।

ACME सत्यापन “अनधिकृत” या “अमान्य प्रतिक्रिया” के साथ विफल क्यों होता है?

ऐसा तब होता है जब CA आपके DNS TXT रिकॉर्ड को सत्यापित नहीं कर पाता है। जांचें कि:

  • TXT रिकॉर्ड बिल्कुल है _acme-challenge.mail.example.com
  • टोकन में कोई अतिरिक्त उद्धरण या रिक्त स्थान नहीं है
  • DNS ने प्रचार किया है ()dig TXT _acme-challenge.mail.example.com +short
  • आपने mail.example.com example.com के साथ मिश्रण नहीं किया

यदि अनिश्चित है, तो TXT रिकॉर्ड हटाएं, फिर से चलाएं acme.sh --issue, और ACME आपको जो सटीक मान देता है उसे फिर से जोड़ें।

मुझे “accountDoesNotExist” या EAB-संबंधित त्रुटियाँ क्यों मिल रही हैं?

ये तब दिखाई देते हैं जब आपका ACME खाता पंजीकरण आपके CA के EAB क्रेडेंशियल्स से मेल नहीं खाता है।

द्वारा ठीक करें:

  • ACME निर्देशिका URL की पुन: जाँच करना (उत्पादन बनाम स्टेजिंग)
  • यह सुनिश्चित करना कि कुंजी आईडी और एचएमएसी बिल्कुल कॉपी किए गए हैं, जिसमें कोई छिपा हुआ स्थान नहीं है
  • सही मानों के साथ एक बार पंजीकरण आदेश को फिर से चलाना

वाणिज्यिक सीए किसी भी ईएबी पंजीकरण को अस्वीकार करते हैं जो उनके जारी किए गए प्रोफाइल से मेल नहीं खाता है।

SMTP/IMAP अभी भी पुराना प्रमाणपत्र क्यों दिखाता है?

इसका मतलब है कि सेवा ने नए प्रमाणपत्र को पुनः लोड नहीं किया है या किसी भिन्न पथ से पढ़ रहा है। जाँच:

  • पोस्टफिक्स/डोवकॉट/एक्ज़िम में टीएलएस पथ वास्तविक फ़ाइलों से मेल खाते हैं
  • आपने सही सेवा को पुनरारंभ किया ()systemctl restart postfix dovecot exim4
  • कोई दूसरा इंस्टेंस, कंटेनर या प्रॉक्सी पुराने प्रमाणपत्र की सेवा नहीं कर रहा है

आप इसका उपयोग करके लाइव प्रमाणपत्र सत्यापित कर सकते हैं:

openssl s_client -connect mail.example.com:465 -servername mail.example.com

अंतिम शब्द

इस सेटअप के साथ, आपका मेल सर्वर SMTP और IMAP/POP3 क्लाइंट के लिए एक उचित वाणिज्यिक ACME प्रमाणपत्र प्रस्तुत करता है, जबकि acme.sh चुपचाप पृष्ठभूमि में नवीनीकरण को संभालता है। आप प्रमाणपत्र श्रृंखला और फ़ाइल नामों पर पूर्ण नियंत्रण रखते हैं, आपके उपयोगकर्ता सुरक्षा चेतावनियाँ देखना बंद कर देते हैं, और आपको हाथ से नई फ़ाइलें अपलोड करने के लिए हर कुछ महीनों में लॉग इन करने की आवश्यकता नहीं होती है।

एक बार जब आप इसे एक बार कर लेते हैं, तो आप उसी ACME खाते और प्रक्रिया का उपयोग करके अन्य होस्टनाम, द्वितीयक MX सर्वर, या अतिरिक्त मेल स्टैक के लिए एक ही पैटर्न दोहरा सकते हैं।

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

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

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

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