في هذا البرنامج التعليمي، ستتعلم كيفية تثبيت شهادة SSL على خادم Courier IMAP. تقوم بدمج شهادتك ومفتاحك الخاص وسلسلة CA في ملف PEM واحد، وتوجيه إعداد TLS_CERTFILE الخاص بـ Courier إليه، وإعادة تشغيل الخدمة حتى يقدم كل من IMAPS و POP3S الشهادة الجديدة.
إنشاء رمز CSR على خادم Courier IMAP
إذا كنت قد أنشأت CSR بالفعل واستلمت ملفات SSL، فتخطى الجزء 1 وانتقل مباشرة إلى خطوات التثبيت.
CSR (طلب توقيع الشهادة) هو كتلة من النص المشفر تحتوي على تفاصيل الاتصال بك. تقوم بإنشائه وإرساله إلى جهة إصدار الشهادات (CA) لتمرير عملية التحقق من SSL. إنشاء CSR ينتج أيضًا المفتاح الخاص المطابق، والذي يبقى على خادمك ويكون مطلوبًا للتثبيت. لديك خياران:
- استخدم أداة إنشاء CSR الخاصة بنا لإنشاء CSR تلقائيًا.
- اتبع برنامجنا التعليمي المفصل خطوة بخطوة حول كيفية إنشاء CSR على خادم Courier IMAP.
لفتح ملف CSR، استخدم أي محرر نص عادي. عند الطلب، انسخ الكتلة كاملة، بما في ذلك سطري BEGIN و END. احتفظ بملف المفتاح الخاص في مكان آمن: ستدمجه في ملف PEM الخاص بك خلال التثبيت.
تثبيت شهادة SSL على خادم Courier IMAP
بعد التحقق، ترسل لك جهة إصدار الشهادات (CA) رسالة بريد إلكتروني تحتوي على أرشيف ZIP بملفات SSL الخاصة بك: الشهادة الأساسية (الخادم) وشهادة واحدة أو أكثر من الشهادات الوسيطة (CA). استخرج الأرشيف على خادمك، ثم اتبع الخطوات أدناه.
الخطوة 1: دمج الشهادة والسلسلة والمفتاح في ملف PEM واحد
يقرأ Courier الشهادة والمفتاح الخاص من ملف PEM واحد محدد في TLS_CERTFILE. قم بدمج الملفات بهذا الترتيب: شهادة الخادم أولاً، ثم سلسلة CA الوسيطة، ثم المفتاح الخاص. من الدليل الذي يحتوي على الملفات المستخرجة، قم بتشغيل:
cat yourdomain.crt yourdomain.ca-bundle yourdomain.key > imapd.pem
sudo mv imapd.pem /etc/courier/imapd.pem
sudo chmod 600 /etc/courier/imapd.pem
إذا سلمت جهة إصدار الشهادات الشهادات الوسيطة كملفات منفصلة بدلاً من ملف .ca-bundle واحد، فقم بسرد كل واحدة بين الشهادة والمفتاح. يجب أن يبدو ملف PEM النهائي كما يلي:
-----BEGIN CERTIFICATE-----
(the text of your primary SSL certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(the text of the intermediate / CA chain certificate)
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
(the text of your private key)
-----END PRIVATE KEY-----
قد تكون المفاتيح القديمة مُسمّاة BEGIN RSA PRIVATE KEY بدلاً من BEGIN PRIVATE KEY؛ كلاهما مناسب. يجب ألا يكون المفتاح مشفرًا بعبارة مرور، لأن Courier يقوم بتحميله دون طلب أي كلمة مرور. يجب أن يكون ملف PEM قابلاً للقراءة فقط من قبل root (باستخدام chmod 600 أعلاه)، لأنه يحتوي على المفتاح الخاص.
إذا كنت تفضل الاحتفاظ بالمفتاح الخاص في ملف منفصل، فاترك المفتاح خارج ملف PEM وقم بتعيين TLS_PRIVATE_KEYFILE إلى مسار المفتاح في ملف الإعدادات (الخطوة 2). عندما يكون المفتاح مدمجًا بالفعل في TLS_CERTFILE، يكون ملف المفتاح المنفصل اختياريًا.
الخطوة 2: توجيه Courier إلى ملف PEM الخاص بك
افتح ملف الإعدادات الذي يستخدمه Courier لـ IMAP عبر SSL. يعتمد المسار على توزيعتك: يكون في العادة /etc/courier/imapd-ssl، أو /usr/lib/courier-imap/etc/imapd-ssl في بعض الأنظمة. عدّله باستخدام محرر نصوص، على سبيل المثال:
sudo nano /etc/courier/imapd-ssl
حدد موقع سطر TLS_CERTFILE (أو أضفه إذا لم يكن موجودًا) وقم بتعيينه إلى ملف PEM الخاص بك:
TLS_CERTFILE=/etc/courier/imapd.pem
إذا احتفظت بالمفتاح الخاص بشكل منفصل في الخطوة 1، فقم أيضًا بتعيين مساره:
TLS_PRIVATE_KEYFILE=/etc/courier/imapd.key
بينما أنت في هذا الملف، قم بتعزيز إعدادات TLS. قم بإزالة أو تعليق أي سطر يفرض بروتوكولًا قديمًا، مثل TLS_PROTOCOL=SSL3: SSLv3 وإصدارات TLS 1.0 و1.1 المبكرة غير آمنة ويجب تعطيلها. قم بضبط Courier ليتطلب TLS 1.2 أو أعلى. تنطبق TLS_PROTOCOL على منفذ SSL المخصص (IMAPS)، وتنطبق TLS_STARTTLS_PROTOCOL على STARTTLS في المنفذ القياسي:
TLS_PROTOCOL=TLSv1.2
TLS_STARTTLS_PROTOCOL=TLSv1.2
القيمة TLSv1.2 تعني “TLS 1.2 أو أعلى”، لذا يتم التفاوض على TLS 1.3 إذا كانت نسخة OpenSSL الخاصة بك تدعمه. لا حاجة لتعيين TLS_TRUSTCERTS لتقديم شهادتك لبرامج البريد؛ هذا المتغير مخصص فقط للتحقق من شهادات العميل.
Debian و Ubuntu و Devuan: على هذه التوزيعات، يُبنى Courier باستخدام GnuTLS بدلاً من OpenSSL، و TLS_PROTOCOL ليس له أي تأثير. حدد أدنى مستوى للبروتوكول باستخدام TLS_PRIORITY بدلاً من ذلك، على سبيل المثال TLS_PRIORITY=NORMAL:-VERS-TLS1.0:-VERS-TLS1.1 (والذي يترك فقط TLS 1.2 و1.3). TLS_CERTFILE وملف PEM المدمج أعلاه متطابقان في كل من هذه البنيتين، لذا فإن عملية تثبيت الشهادة نفسها لا تتغير.
ملاحظة حول معاملات Diffie-Hellman: تقوم حزم Courier الحالية بإنشاء ملف معاملات DH تلقائيًا (عبر البرنامج النصي mkdhparams ووظيفة cron دورية) وقراءته من TLS_DHPARAMS، لذا لا تحتاج بعد الآن إلى إنشاء واحد يدويًا لتثبيت قياسي. تمت إزالة التوجيه القديم TLS_DHCERTFILE في Courier 4.15. إذا لم يتم تشغيل mkdhparams مطلقًا على خادمك، فقم بتشغيله مرة واحدة لإنشاء الملف.
إذا كنت تقدم أيضًا POP3S (المنفذ 995)، فافتح ملف إعدادات POP3، /etc/courier/pop3d-ssl (أو /usr/lib/courier-imap/etc/pop3d-ssl)، وطبّق الإعدادات ذاتها. يمكنك إعادة استخدام ملف PEM نفسه، أو إنشاء ملف مخصص /etc/courier/pop3d.pem بالمحتوى ذاته:
TLS_CERTFILE=/etc/courier/pop3d.pem
TLS_PROTOCOL=TLSv1.2
TLS_STARTTLS_PROTOCOL=TLSv1.2
الخطوة 3: إعادة تشغيل Courier
أعد تشغيل Courier حتى يتم تحميل الشهادة الجديدة. في معظم التوزيعات المستندة إلى systemd، أعد تشغيل خدمات SSL وخدمة المصادقة:
sudo systemctl restart courier-imap-ssl
sudo systemctl restart courier-pop3-ssl
sudo systemctl restart courier-authdaemon
تعرض بعض الحزم وحدة واحدة مدمجة بدلاً من ذلك. إذا لم يتم العثور على الخدمات أعلاه، فحاول:
sudo systemctl restart courier
على نظام لا يستخدم systemd، أعد التشغيل من خلال البرامج النصية الخاصة بـ Courier:
/usr/lib/courier-imap/libexec/imapd-ssl.rc restart
/usr/lib/courier-imap/libexec/pop3d-ssl.rc restart
بمجرد إعادة تشغيل الخدمة بنجاح، تصبح شهادة SSL الجديدة نشطة لـ IMAPS (المنفذ 993) و POP3S (المنفذ 995)، وكذلك لـ STARTTLS على المنفذين 143 و110.
اختبار تثبيت SSL الخاص بك
بعد التثبيت، تأكد من أن الشهادة تُقدَّم بشكل صحيح. من الطرفية، افتح اتصال TLS إلى منفذ IMAPS واقرأ الشهادة التي يقدمها الخادم:
openssl s_client -connect mail.yourdomain.com:993 -servername mail.yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -subject -dates
بالنسبة إلى POP3S، استخدم المنفذ 995. لاختبار STARTTLS على منفذ IMAP القياسي بدلاً من ذلك، قم بتشغيل:
openssl s_client -connect mail.yourdomain.com:143 -starttls imap
يقوم الأمر الأول بتمرير الاتصال إلى openssl x509 ويطبع الجهة المُصدرة، والموضوع (الاسم الشائع)، وتواريخ الصلاحية، حتى تتأكد من تقديم الشهادة الصحيحة. يعرض أمر STARTTLS عملية التفاوض كاملة: تحقق من صحة الجهة المُصدرة والسلسلة ومن ظهور Verify return code: 0 (ok) قرب النهاية. للحصول على تقرير كامل عن شهادتك وإعداداتها، استخدم SSL Checker الخاص بنا.
الأسئلة الشائعة
شهادة الخادم أولاً، ثم سلسلة CA الوسيطة، ثم المفتاح الخاص، جميعها في ملف PEM واحد. يقرأ Courier هذا الملف من TLS_CERTFILE ويقدم السلسلة الكاملة للعملاء. يجب أن يكون المفتاح الخاص غير مشفر (بدون عبارة مرور).
يتم إعداد IMAP عبر SSL في /etc/courier/imapd-ssl، و POP3 عبر SSL في /etc/courier/pop3d-ssl. في بعض التوزيعات تكون هذه الملفات موجودة تحت /usr/lib/courier-imap/etc/ بدلاً من ذلك. إعدادات STARTTLS للمنافذ النصية العادية موجودة في ملفات imapd و pop3d المطابقة.
ليس بشكل يدوي في تثبيت عادي. تولّد حزم Courier الحالية ملف معاملات DH تلقائيًا باستخدام البرنامج النصي mkdhparams وتحدّثه بشكل دوري، مع قراءته من TLS_DHPARAMS. تمت إزالة التوجيه القديم TLS_DHCERTFILE في Courier 4.15. قم بتشغيل mkdhparams مرة واحدة فقط إذا لم يوجد ملف DH بعد.
قم بإزالة أي سطر TLS_PROTOCOL=SSL3 واضبط TLS_PROTOCOL=TLSv1.2 في imapd-ssl و pop3d-ssl. اضبط TLS_STARTTLS_PROTOCOL=TLSv1.2 لمنافذ STARTTLS. القيمة TLSv1.2 تعني “1.2 أو أعلى”، لذا يُستخدم TLS 1.3 تلقائيًا عندما تدعمه نسخة OpenSSL الخاصة بك.
اتصل بمنفذ البريد باستخدام OpenSSL واقرأ الشهادة المقدَّمة: openssl s_client -connect mail.yourdomain.com:993 لـ IMAPS، أو أضف -starttls imap على المنفذ 143. تأكد من صحة الجهة المُصدرة والسلسلة ومن أن المخرجات تُظهر Verify return code: 0 (ok).
وفِّر 10% على شهادات SSL عند الطلب اليوم!
إصدار سريع، وتشفير قوي، وثقة في المتصفح بنسبة 99.99%، ودعم مخصص، وضمان استرداد المال خلال 25 يومًا. رمز القسيمة: SAVE10


