bg-tutorials

كيفية تنصيب شهادة ACME SSL على خوادم البريد

في هذا الدليل، ستتعلم في هذا الدليل كيفية تثبيت شهادة ACME SSL على خوادم البريد، وتحديدًا Postfix و Dovecot و Exim اختياريًا، باستخدام مزودي خدمات تجارية تدعم ACME + EAB. سنستخدم acme.sh لتسجيل حساب ACME الخاص بك، وإصدار شهادة لاسم مضيف البريد الخاص بك، ثم توصيل هذه الشهادة مباشرةً في تكوين TLS الخاص بخادم البريد الخاص بك.

خوادم البريد ACME SSL

يفترض هذا الدليل وجود خادم بريد يستند إلى لينكس و CA تجاري يوفر عنوان URL لدليل ACME مع بيانات اعتماد EAB (معرف المفتاح + HMAC). نظرًا لاختلاف بيئات البريد باختلاف التوزيعات وإعدادات الاستضافة، تعامل مع هذا كمخطط واضح وموثوق به، ولكن تحقق دائمًا من مسارات خادمك وأسماء الخدمات وإعدادات TLS أثناء تنقلك.


قبل أن تبدأ

ستقضي وقتاً أكثر سلاسة إذا كانت هذه الأساسيات جاهزة:

  • اسم مضيف البريد، على سبيل المثال mail.example.com، مع سجل A/AAA يشير إلى خادم البريد الخاص بك
  • سجل MX الخاص بك الذي يشير إلى اسم المضيف هذا (إعداد شائع)
  • وصول Shell/SSH إلى خادم البريد باستخدام sudo أو root
  • حساب CA التجاري الذي يوفر عنوان URL لدليل ACME(على سبيل المثال https://acme.yourca.com/v2/acme) ومعرف مفتاح EAB ومفتاح EAB HMAC
  • مكدس البريد: Postfix/Exim ل SMTP و Dovecot ل IMAP/POP3

سنستخدم التحقق من صحة DNS-01 لأنه يعمل حتى عندما لا يقوم خادم البريد الخاص بك بتشغيل موقع عام وغالباً ما يكون مفضلاً في الإنتاج.


الخطوة 1: قم بتثبيت acme.sh على خادم البريد

ستقوم بتثبيت عميل ACME مباشرةً على خادم البريد حتى يتمكن من تجديد الشهادات وكتابتها على القرص حيث يمكن ل Postfix/Dovecot/Exim قراءتها.

على خادم البريد

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

إذا رأيت رقم الإصدار، فهذا يعني أن العميل مثبت وجاهز. إذا لم يعمل سطر source ~/.bashrc ، فقم بتسجيل الخروج ثم الدخول مرة أخرى، ثم قم بتشغيل acme.sh --version مرة أخرى.


الخطوة 2: تسجيل حساب ACME الخاص بك (مع EAB)

بعد ذلك، تحتاج إلى تسجيل حساب ACME الخاص بك مع المرجع المصدق التجاري الخاص بك باستخدام بيانات اعتماد EAB من لوحتهم. acme.sh يدعم EAB عبر --eab-kid و --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 مع عنوان URL لدليل ACME الخاص ب CA الخاص بك
  • YOUR_EAB_KID بمعرف المفتاح
  • YOUR_EAB_HMAC_KEY بمفتاح HMAC
  • [email protected] ببريدك الإلكتروني الحقيقي للمشرف لإشعارات انتهاء الصلاحية

يمكنك القيام بذلك مرة واحدة لكل حساب. إذا فشل الأمر، فغالبًا ما يكون هناك دائمًا خطأ مطبعي في عنوان URL أو قيم EAB.


الخطوة 3: إصدار الشهادة عبر DNS-01

الآن يمكنك طلب شهادة لاسم المضيف الذي سيتصل به المستخدمون، على سبيل المثال mail.example.com (أو imap.example.com ، smtp.example.com. فقط اختر الشهادة التي تستخدمها بالفعل في تكوينات العميل).

إصدار الشهادة (DNS يدوي)

اركض:

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

--dns dns_manual يخبرنا acme.sh أنك ستضيف سجلات TXT يدويًا في لوحة DNS الخاصة بك.

سيقوم العميل بإخراج شيء مثل:

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/ail.example.com/.

داخل هذا الدليل سيكون لديك على الأقل:

  • fullchain.cer – الشهادة بالإضافة إلى السلسلة الوسيطة
  • mail.example.com.key – المفتاح الخاص
  • ca.cer – شهادات CA (إذا كان المرجع المصدق (CA) الخاص بك يوفره بشكل منفصل)

سنستخدمها في الخطوات التالية.


الخطوة 4: تهيئة Postfix لاستخدام شهادة ACME (SMTP)

يحتاج Postfix إلى معرفة مكان وجود الشهادة والمفتاح الجديدين. يتم التحكم في TLS في Postfix بواسطة خيارات مثل 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

ثم أخبر Postfix باستخدامها:

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: تكوين Dovecot لاستخدام شهادة ACME (IMAP/POP3)

يتعامل Dovecot مع IMAP و POP3. يمكنك تكوين TLS عن طريق توجيه ssl_cert و ssl_key إلى نفس الملفات التي أعددناها للتو.

افتح تكوين SSL الخاص ب Dovecot:

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

احفظ الملف وأعد تحميل Dovecot:

sudo systemctl restart dovecot

سيقدم الآن IMAP/POP3 عبر TLS نفس شهادة ACME التجارية.


اختياري: استخدام نفس الشهادة في Exim

إذا كنت تستخدم Exim كخادم البريد الخاص بك بدلاً من Postfix، فإن التكامل مشابه. يستخدم Exim خيارات tls_certificate و tls_privatekey لخيارات TLS.

في تكوين 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

ثم أعد تحميل Exim:

sudo systemctl restart exim4

تحقق من مستندات حزمة التوزيع الخاصة بك إذا كان اسم الخدمة مختلفاً قليلاً.


الخطوة 6: اختبار TLS البريد الخاص بك

يمكنك الاختبار من أي جهاز آخر مثبت عليه OpenSSL .

اختبار SMTP (Postfix أو Exim)

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

اختبار IMAP (Dovecot)

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

إذا أظهر الإخراج المرجع المصدق المرجعي المصدق التجاري الخاص بك وتطابق اسم المضيف، فأنت بخير.


الخطوة 7: استمر في التجديد وإعادة التحميل التلقائي

acme.sh يقوم بالفعل بتثبيت مهمة cron التي تتحقق من التجديدات يوميًا. عندما تقترب شهادتك من انتهاء صلاحيتها، سيتم تجديدها تلقائيًا وتحديث الملفات في ~/.acme.sh/mail.example.com/.

لجعل Postfix/Dovecot/Exim يستخدم أحدث إصدار دائمًا، لديك خياران:

  1. قم بتوجيه التكوينات مباشرة إلى الملفات الموجودة في ~/.acme.sh/mail.example.com/
    (على سبيل المثال smtpd_tls_tls_cert_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 الخاص ببريد الخادم الخاص بك، وتعيين الملكية والأذونات الصحيحة، ثم إعادة تشغيل Postfix و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) التحقق من سجل 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 بالضبط.

لماذا أحصل على أخطاء متعلقة بـ “الحساب غير موجود” أو EAB؟

تظهر هذه عندما لا يتطابق تسجيل حساب ACME الخاص بك مع بيانات اعتماد EAB من المرجع المصدق (CA).

تم الإصلاح بواسطة:

  • إعادة التحقق من عنوان URL لدليل ACME (الإنتاج مقابل التدريج)
  • التأكد من نسخ معرّف المفتاح و HMAC بالضبط، بدون مسافات مخفية
  • إعادة تشغيل أمر التسجيل مرة واحدة بقيم صحيحة

ترفض المراجعين القانونيين المعتمدين التجاريين أي تسجيل EAB لا يتطابق مع ملف التعريف الصادر عنهم.

لماذا يستمر SMTP/IMAP في إظهار الشهادة القديمة؟

هذا يعني أن الخدمة لم تقم بإعادة تحميل الشهادة الجديدة أو أنها تقرأ من مسار مختلف. تحقق من ذلك:

  • تتطابق مسارات TLS في Postfix/Dovecot/Exim مع الملفات الفعلية
  • قمت بإعادة تشغيل الخدمة الصحيحة (systemctl restart postfix dovecot exim4)
  • لا يوجد مثيل أو حاوية أو وكيل ثانٍ يخدم الشهادة القديمة

يمكنك التحقق من الشهادة المباشرة باستخدام:

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

الكلمات الأخيرة

من خلال هذا الإعداد، يقدم خادم البريد الخاص بك شهادة ACME تجارية مناسبة لعملاء SMTP و IMAP/POP3، بينما يعالج acme.sh التجديدات بهدوء في الخلفية. يمكنك الاحتفاظ بالتحكم الكامل في سلسلة الشهادات وأسماء الملفات، ويتوقف المستخدمون عن رؤية تحذيرات الأمان، ولا يتعين عليك تسجيل الدخول كل بضعة أشهر لتحميل ملفات جديدة يدويًا.

بمجرد الانتهاء من ذلك مرة واحدة، يمكنك تكرار نفس النمط لأسماء مضيفين آخرين أو خوادم MX الثانوية أو حزم بريد إضافية باستخدام نفس حساب ACME والعملية.

وفِّر 10% على شهادات SSL عند الطلب اليوم!

إصدار سريع، وتشفير قوي، وثقة في المتصفح بنسبة 99.99%، ودعم مخصص، وضمان استرداد المال خلال 25 يومًا. رمز القسيمة: SAVE10

صورة مفصلة لتنين أثناء طيرانه

كاتب محتوى متمرس متخصص في شهادات SSL. تحويل موضوعات الأمن السيبراني المعقدة إلى محتوى واضح وجذاب. المساهمة في تحسين الأمن الرقمي من خلال السرد المؤثر.