bg-tutorials

كيفية تثبيت شهادة SSL على خوادم macOS

يشرح هذا الدليل كيفية تثبيت شهادة SSL على macOS. يغطي استيراد شهادتك وحزمة CA باستخدام Keychain Access، وأسلوب العمل القديم في macOS Server (Server.app) الذي لا تزال العديد من الإعدادات القائمة تعمل به، والمسار الواقعي لإصدارات macOS الحالية التي لم يعد فيها Server.app موجودًا.

مهم: أوقفت Apple منتج macOS Server (Server.app). تمت إزالة خدمات الويب والبريد وأغلب خدمات الاستضافة في عام 2018، وتم التخلي عن التطبيق نفسه في أبريل 2022. آخر إصدار، 5.12.2، يعمل فقط حتى macOS Monterey. تغطي الخطوات أدناه كلًا من طريقة Server.app القديمة والأسلوب الحالي.

إنشاء رمز CSR

لتفعيل شهادة SSL الخاصة بك، ترسل تفاصيل عن نطاقك ومؤسستك إلى الجهة المصدرة للشهادات (CA). تُسمى هذه الخطوة المعيارية طلب توقيع الشهادة، أو CSR. لديك خياران:

أرسل CSR عند تقديم طلبك. ستتحقق الجهة المصدرة (CA) من طلبك، وعند الموافقة عليه، ستوقّع الشهادة وتصدرها. ستستلم ملفات الشهادة عبر البريد الإلكتروني. بعد ذلك، تابع خطوات التثبيت أدناه.

تثبيت شهادة SSL على macOS

تتبع الخطوات أدناه أسلوب العمل الأصلي في macOS Server (Server.app): استيراد حزمة CA والشهادة باستخدام Keychain Access، ثم تعيين الشهادة للخدمات في تطبيق Server. إذا لم يعد جهاز Mac الخاص بك يحتوي على تطبيق Server، تخطَّ إلى macOS الحالي: بدون Server.app بعد الخطوة 2، إذ إن استيراد Keychain لا يزال ينطبق.

الخطوة 1: تحضير ملفات الشهادة

قم بتنزيل أرشيف ZIP الذي أرسلته الجهة المصدرة (CA) واستخرجه. يجب أن يكون لديك ملف بامتداد .crt (شهادتك الأساسية) وملف بامتداد .ca-bundle (الشهادات الجذرية والوسيطة، والمعروفة أيضًا بـ حزمة CA). ستحتاج أيضًا إلى المفتاح الخاص الذي أنشأته مع CSR.

الخطوة 2: إضافة ملف .ca-bundle إلى Keychain Access

ابدأ بحزمة CA. تحتوي على الشهادات الجذرية والوسيطة التي تستخدمها المتصفحات والعملاء لبناء سلسلة ثقة تعود إلى جذر موثوق. بدونها، قد يرى الزوار تحذيرًا بأن الاتصال “غير آمن” أو أن الشهادة غير موثوقة.

  1. حدد موقع الملف بامتداد .ca-bundle.
  2. افتح Keychain Access (ابحث عنه باستخدام Spotlight، أو اعثر عليه في Applications > Utilities).
  3. اسحب ملف .ca-bundle وأسقطه في نافذة Keychain Access. أضفه إلى سلسلة مفاتيح System بحيث ينطبق على جميع المستخدمين والخدمات.
  4. لتأكيد نجاح الاستيراد، اكتب اسم الجهة المصدرة (CA) الخاصة بك في شريط البحث. يجب أن ترى الشهادات الوسيطة والشهادة الجذرية مدرجة.

يمكنك تنفيذ الأمر نفسه من Terminal، وهو مفيد على خادم بلا واجهة أو خادم بعيد. هذا يستورد الحزمة إلى سلسلة مفاتيح النظام:

sudo security import yourdomain.ca-bundle -k /Library/Keychains/System.keychain

الخطوة 3: إضافة شهادتك الأساسية (Server.app القديم)

تستخدم هذه الخطوة تطبيق Server.app المتوقف. إذا لم يعد جهاز Mac الخاص بك يحتوي عليه، راجع القسم التالي بدلًا من ذلك.

  1. افتح تطبيق Server وانتقل إلى Server > Certificates.
  2. في الصفحة الرئيسية، انقر نقرًا مزدوجًا على الشهادة المعلَّقة (التي تم إنشاؤها عند إنشاء CSR).
  3. في النافذة التي تُفتح، اسحب ملف .crt الخاص بك وأسقطه، ثم انقر على OK.
  4. ستُظهر الشهادة الصالحة الآن اسم الجهة المصدرة وتاريخ انتهاء الصلاحية.

الخطوة 4: تعيين الشهادة لخدماتك (Server.app القديم)

في تطبيق Server، اعثر على إعداد Secure services using. استخدم القائمة المنسدلة لتحديد شهادة SSL الخاصة بك. لتعيينها لخدمات معينة مثل مشاركة الملفات أو البريد، انقر على Custom واختر الخدمات التي تريد تأمينها. عند الانتهاء، انقر على OK.

تم الآن تثبيت شهادة SSL الخاصة بك. لتأكيد النتيجة والتحقق من المشكلات الشائعة، استخدم فاحص SSL الخاص بنا.

macOS الحالي: بدون Server.app (استخدم Keychain مع Apache أو nginx)

لأن Apple أوقفت Server.app، لا تحتوي إصدارات macOS الحالية على شاشة Server > Certificates ولا على إمكانية تعيين شهادة لكل خدمة على حدة. لا يزال استيراد الشهادة إلى Keychain Access (الخطوة 2) ساريًا لضمان ثقة النظام، لكنك تُقدّم HTTPS من خلال تهيئة خادم ويب مباشرةً. يأتي macOS مزودًا بـ Apache (httpd) مدمج، ويتوفر nginx عبر Homebrew. ضع الشهادة والمفتاح في مكان يستطيع الخادم قراءته، مثلًا تحت /etc/ssl/، واحرص على أن يكون المفتاح الخاص قابلًا للقراءة من قِبل root فقط.

الخيار أ: Apache المدمج (httpd)

حرّر ملف /etc/apache2/httpd.conf وأزل علامة # من بداية هذه السطور بحيث تُحمَّل وحدات SSL وتهيئة SSL:

LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf

أولًا، أنشئ ملف السلسلة الكاملة (شهادتك متبوعة بحزمة CA)، وهو ما تتوقعه توجيهة SSLCertificateFile في Apache 2.4.8 وما بعده:

cat yourdomain.crt yourdomain.ca-bundle > yourdomain_fullchain.crt

ثم حرّر ملف /etc/apache2/extra/httpd-ssl.conf وتأكد من أنه يستمع على المنفذ 443. يأتي هذا الملف مزودًا مسبقًا بكتلة افتراضية <VirtualHost _default_:443> تحتوي على شهادة موقعة ذاتيًا، لذا يمكنك تحرير تلك الكتلة أو إضافة المضيف الافتراضي أدناه وتعطيل الكتلة الافتراضية عن طريق التعليق عليها، لتجنب وجود مضيفين على المنفذ 443:

<VirtualHost *:443>
    ServerName www.yourdomain.com
    DocumentRoot "/Library/WebServer/Documents"

    SSLEngine on
    SSLCertificateFile    /etc/ssl/yourdomain_fullchain.crt
    SSLCertificateKeyFile /etc/ssl/private/yourdomain.key

    SSLProtocol         -all +TLSv1.2 +TLSv1.3
    SSLHonorCipherOrder off
</VirtualHost>

تفترض المسارات أعلاه أن المفتاح الخاص موجود في /etc/ssl/private/، وهو مسار قد لا يكون موجودًا افتراضيًا على macOS. أنشئه أولًا واحرص على أن يكون المفتاح قابلًا للقراءة من قِبل root فقط:

sudo mkdir -p /etc/ssl/private
sudo chmod 600 /etc/ssl/private/yourdomain.key

اختبر التهيئة قبل إعادة التشغيل، ثم أعد تشغيل Apache:

sudo apachectl configtest
sudo apachectl restart

يجب أن ترى رسالة Syntax OK من الاختبار. إذا ظهر خطأ، أصلحه قبل إعادة التشغيل حتى لا يفشل الخادم في بدء التشغيل.

الخيار ب: nginx

إذا كنت تستخدم nginx، أشِر إلى ملف السلسلة الكاملة والمفتاح في كتلة الخادم، ثم أعد التحميل:

server {
    listen 443 ssl;
    server_name www.yourdomain.com;

    ssl_certificate     /etc/ssl/yourdomain_fullchain.crt;
    ssl_certificate_key /etc/ssl/private/yourdomain.key;

    ssl_protocols TLSv1.2 TLSv1.3;
}
sudo nginx -t
sudo nginx -s reload

لإدارة التهيئة على مجموعة من أجهزة Mac (الدور الذي كان يقوم به Profile Manager القديم)، استخدم حل MDM حديثًا بدلًا من ذلك. للتحقق من الشهادة المثبتة من أي جهاز، استخدم فاحص SSL الخاص بنا.

الأسئلة الشائعة

هل ما زال macOS Server متوفرًا؟

لا. أزالت Apple أغلب خدمات الاستضافة من macOS Server في عام 2018 وأوقفت التطبيق نفسه في أبريل 2022. الإصدار الأخير، 5.12.2، يعمل فقط حتى macOS Monterey وغير مدعوم على إصدارات macOS الأحدث. على macOS الحالي، تستورد الشهادات إلى Keychain Access وتهيّئ Apache أو nginx مباشرةً بدلًا من استخدام تطبيق Server.

كيف أثبّت شهادة SSL على macOS بدون تطبيق Server؟

استورد حزمة CA وشهادتك إلى Keychain Access حتى يثق النظام بالسلسلة، ثم وجّه خادم الويب إلى الشهادة والمفتاح الخاص. يتضمن macOS تطبيق Apache (مُهيّأ في /etc/apache2/)، ويمكنك تثبيت nginx عبر Homebrew. حدّد SSLCertificateFile وSSLCertificateKeyFile في Apache، أو ssl_certificate وssl_certificate_key في nginx، ثم اختبر التهيئة وأعد تشغيل الخادم.

أين يخزّن macOS شهادات SSL؟

تعيش الشهادات الموثوقة في سلاسل مفاتيح يديرها Keychain Access. تذهب الشهادات على مستوى النظام إلى سلسلة مفاتيح System، المخزنة في /Library/Keychains/System.keychain. يمكن وضع ملفات الشهادة والمفتاح الخاص التي يقرأها خادم الويب في مكان آخر، مثلًا تحت /etc/ssl/، طالما أن تهيئة الخادم تشير إليها ويبقى المفتاح قابلًا للقراءة من قِبل root فقط.

هل أحتاج إلى تثبيت حزمة CA على macOS؟

نعم. تحتوي حزمة CA على الشهادات الوسيطة والجذرية التي تتيح للمتصفحات والعملاء بناء سلسلة ثقة كاملة. إذا تخطيتها، سيرى بعض الزوار تحذيرًا بأن سلسلة الشهادات غير موثوقة أو غير مكتملة. استورد ملف .ca-bundle إلى Keychain Access، أو دمجه بعد شهادتك في ملف سلسلة كاملة واحد لـ Apache أو nginx.

كيف أتحقق من أن الشهادة مثبَّتة بشكل صحيح؟

افتح موقعك في متصفح وتحقق من رمز القفل، أو استعلم عن الخادم من Terminal باستخدام OpenSSL لقراءة الشهادة التي يقدّمها:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
يطبع هذا اسم الجهة المصدرة وتواريخ الصلاحية. يمكنك أيضًا إجراء فحص خارجي كامل باستخدام فاحص SSL الخاص بنا.

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

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

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

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