bg-tutorials

كيفية إنشاء CSR على خوادم macOS

يوضح لك هذا الدرس كيفية إنشاء CSR (طلب توقيع الشهادة) على macOS. يغطي الطريقتين اللتين تعملان على كل إصدار حديث من macOS: معالج Certificate Assistant في Keychain Access (أداة رسومية مدمجة، لا تحتاج إلى برامج إضافية)، وسطر أوامر openssl في Terminal. كما يحافظ على سير العمل القديم في macOS Server (Server.app) للحالات القليلة التي لا تزال تشغّله على Monterey.

هام: أوقفت Apple تطبيق macOS Server في 21 أبريل 2022. الإصدار الأخير، 5.12.2، يعمل فقط حتى macOS Monterey وغير متوفر لـ Ventura أو Sonoma أو Sequoia أو الإصدارات الأحدث. تمت إزالة معظم خدمات الاستضافة (الويب، البريد، التقويم، جهات الاتصال، الويكي، VPN، DHCP، DNS، وغيرها) بالفعل من Server.app في الإصدار 5.7.1 عام 2018، لذا حتى على Monterey يبقى معالج “الحصول على شهادة موثوقة” هو سير العمل الوحيد المتعلق بالشهادات. إذا كنت تستخدم Ventura أو إصدارًا أحدث، فاستخدم طريقة Keychain Access أو OpenSSL أدناه.

الطريقة الأولى: إنشاء CSR باستخدام Keychain Access (macOS الحالي)

إذا كنت قد أنشأت بالفعل CSR الخاص بك باستخدام أداة أخرى، انتقل إلى تثبيت الشهادة على macOS.

يأتي Keychain Access مع كل إصدار من macOS ويتضمن Certificate Assistant الذي ينشئ ملف CSR قياسي بصيغة PKCS #10 (بامتداد .certSigningRequest). يتم إنشاء المفتاح الخاص داخل سلسلة مفاتيح login الخاصة بك في الوقت نفسه، بحيث لا يغادر جهاز Mac أبدًا. هذه هي الطريقة الأبسط عندما لا ترغب في استخدام سطر الأوامر.

الخطوة 1: افتح Keychain Access

افتح Keychain Access من Applications > Utilities، أو اضغط على Cmd + Space واكتب Keychain Access في Spotlight.

على macOS Sequoia وSonoma وVentura، لا يزال Keychain Access موجودًا رغم أن تطبيق Passwords الأحدث من Apple يتولى إدارة كلمات مرور المواقع. لا يوجد Certificate Assistant إلا في Keychain Access، لذا هذا هو التطبيق الذي يجب فتحه.

الخطوة 2: افتح Certificate Assistant

من شريط القوائم، انتقل إلى Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority.

الخطوة 3: املأ التفاصيل الخاصة بك

تطلب نافذة Certificate Assistant بعض الحقول. استخدم أحرف ASCII القياسية فقط؛ سترفض هيئات إصدار الشهادات العامة الأحرف غير اللاتينية في موضوع الطلب.

  • User Email Address: عنوان بريد إلكتروني صالح للتواصل. تستخدمه هيئات إصدار الشهادات العامة لإشعارات الإصدار.
  • Common Name: اسم النطاق المؤهل بالكامل الذي تريد تأمينه، على سبيل المثال www.example.com. لشهادة wildcard، استخدم صيغة النجمة، مثال *.example.com.
  • CA Email Address: اتركه فارغًا. ستقدم CSR من خلال نموذج الطلب الخاص بهيئة إصدار الشهادات، وليس عبر البريد الإلكتروني.
  • Request is: اختر Saved to disk. حدد Let me specify key pair information حتى تتمكن من اختيار نوع المفتاح وحجمه في الشاشة التالية.

انقر على Continue. سيطلب منك macOS تحديد موقع الحفظ؛ اختر مجلدًا يمكنك العثور عليه لاحقًا (على سبيل المثال سطح المكتب). اسم الملف الافتراضي هو CertificateSigningRequest.certSigningRequest؛ يمكنك إعادة تسميته قبل الحفظ.

الخطوة 4: اختر زوج المفاتيح

في شاشة Key Pair Information، اختر نوع المفتاح وحجمه اللذين تريد أن ترتبط بهما الشهادة لدى هيئة إصدار الشهادات:

  • Key Size: 2048 بت (الحد الأدنى الحالي للشهادات العامة) أو 4096 بت لمفتاح RSA أكبر. ترفض جميع هيئات إصدار الشهادات العامة المفاتيح القديمة ذات 1024 بت، لذا لا تختارها.
  • Algorithm: RSA لأقصى قدر من التوافق، أو ECC لمفتاح منحنى بيضاوي حديث (أصغر حجمًا وأسرع، مع دعم واسع من العملاء).

انقر على Continue. يقوم Certificate Assistant بإنشاء زوج المفاتيح، وتخزين المفتاح الخاص في سلسلة مفاتيح تسجيل الدخول الخاصة بك، وكتابة CSR في الملف الذي اخترته، ثم عرض شاشة تأكيد. انقر على Done.

أصبح CSR الآن جاهزًا لتقديمه إلى هيئة إصدار الشهادات. يمكنك فتح ملف .certSigningRequest في TextEdit لعرضه؛ يبدأ بـ -----BEGIN CERTIFICATE REQUEST----- وينتهي بـ -----END CERTIFICATE REQUEST-----. انسخ الكتلة بأكملها (بما في ذلك سطري الترويسة والتذييل هذين) والصقها في نموذج الطلب أثناء عملية الشراء.

قبل التقديم، يمكنك فك تشفير الطلب للتأكد من أن الحقول تبدو صحيحة باستخدام أداة فك تشفير CSR.

الطريقة الثانية: إنشاء CSR باستخدام OpenSSL في Terminal

إذا كنت تفضل سطر الأوامر، أو تحتاج إلى قائمة Subject Alternative Name (SAN) تضم عدة أسماء مضيفة في طلب واحد، فأنشئ CSR باستخدام أداة openssl في Terminal. يأتي كل إصدار حديث من macOS مزودًا بأمر LibreSSL الموجود في /usr/bin/openssl، والذي يدعم نفس صيغة openssl req المستخدمة على Linux. إذا كنت تفضل OpenSSL نفسه، فثبّته باستخدام brew install openssl@3؛ سيوجد الملف التنفيذي عندئذ في /opt/homebrew/opt/openssl@3/bin/openssl (رقائق Apple) أو /usr/local/opt/openssl@3/bin/openssl (Intel).

الخطوة 1: افتح Terminal

افتح Terminal من Applications > Utilities، أو اضغط على Cmd + Space واكتب Terminal. انتقل إلى مجلد يمكنك العثور عليه لاحقًا، على سبيل المثال دليل عمل على سطح المكتب:

mkdir -p ~/Desktop/csr
cd ~/Desktop/csr

الخطوة 2: أنشئ المفتاح الخاص وملف CSR

نفّذ الأمر التالي. يقوم بإنشاء مفتاح RSA جديد بحجم 2048 بت (yourdomain.key) وملف CSR المطابق (yourdomain.csr) في خطوة واحدة، مع تزويد الموضوع (subject) وأسماء Subject Alternative Names مباشرة في السطر بحيث لا يتوقف OpenSSL لطرح أسئلة:

openssl req -new -newkey rsa:2048 -nodes 
-keyout yourdomain.key 
-out yourdomain.csr 
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=yourdomain.com" 
-addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"

ما تقوم به كل جزئية:

  • -newkey rsa:2048 ينشئ مفتاح RSA جديد بحجم 2048 بت. استخدم rsa:4096 لمفتاح أكبر، أو انتقل إلى ECDSA (انظر أدناه).
  • -nodes يترك المفتاح الخاص غير مشفّر، بحيث يمكن لخادم الويب قراءته عند بدء التشغيل دون طلب عبارة مرور.
  • -keyout و-out يحددان أسماء ملفي المفتاح الخاص وCSR.
  • -subj يوفّر موضوع الشهادة. ضع اسم شركتك الحقيقي وولايتك ومدينتك هنا، وليس القيم النائبة. CN (الاسم الشائع) هو نطاقك الأساسي.
  • -addext “subjectAltName=…” يسرد كل اسم مضيف يجب أن تغطيه الشهادة. تتحقق هيئات إصدار الشهادات العامة من قائمة SAN، لذا احرص دائمًا على تضمين الاسم الشائع فيها أيضًا.

استبدل yourdomain.com بنطاقك الفعلي في كل مكان. لتغطية أسماء مضيفة إضافية، أضفها إلى قائمة SAN مفصولة بفواصل، على سبيل المثال DNS:api.yourdomain.com. لشهادة wildcard، أدرج كلاً من نطاق wildcard والنطاق العادي: DNS:*.yourdomain.com,DNS:yourdomain.com. استخدم رمز البلد الرسمي المكون من حرفين لحقل C (على سبيل المثال US، GB، DE).

إذا كنت تفضل مفتاح ECDSA (أصغر وأسرع، مع دعم واسع لمنحنى P-256)، فأنشئ المفتاح وCSR بهذه الطريقة بدلاً من ذلك:

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes 
-keyout yourdomain.key 
-out yourdomain.csr 
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=yourdomain.com" 
-addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"

إذا كنت تفضل الإجابة على المطالبات حقلاً تلو الآخر، فنفّذ الصيغة الأبسط بدون -subj و-addext:

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr

يطلب OpenSSL بعد ذلك كل حقل بالتتابع:

  • Country Name (2 letter code): رمز ISO 3166-1 alpha-2 الخاص ببلدك، على سبيل المثال US.
  • State or Province Name: الاسم الكامل لولايتك أو مقاطعتك، وليس اختصارًا.
  • Locality Name: المدينة التي تم فيها تسجيل مؤسستك.
  • Organization Name: الاسم القانوني الكامل لشركتك بالنسبة لشهادات OV وEV. بالنسبة لشهادات DV لا يتم التحقق من هذه القيمة، لكن لا تضغط على Enter فقط: سيقوم OpenSSL حينها بملء القيمة الافتراضية المحددة في إعداداته، ويأتي ملف openssl.cnf الافتراضي بقيمة Internet Widgits Pty Ltd، والتي ستنتهي في CSR الخاص بك. اكتب نقطة واحدة (.) لترك الحقل فارغًا فعليًا.
  • Organizational Unit Name: تم إيقافه من قبل CA/Browser Forum. اضغط Enter لتركه فارغًا.
  • Common Name: اسم النطاق المؤهل بالكامل الذي تريد تأمينه، على سبيل المثال www.yourdomain.com، أو *.yourdomain.com لشهادة wildcard.
  • Email Address: بريد إلكتروني صالح للتواصل، أو اضغط Enter للتخطي.
  • عند سؤالك عن a challenge password وan optional company name، اضغط Enter لتركهما فارغين. تتجاهل هيئات إصدار الشهادات العامة هذه الحقول.

لاحظ أن أيًا من المطالبات لا يسأل عن SAN. لا يزال بإمكانك الحصول على واحد بالإبقاء على -addext في سطر الأوامر وحذف -subj فقط: سيطلب OpenSSL الموضوع بشكل تفاعلي وسيظل يكتب ملحق SAN. وإلا فاستخدم الصيغة المباشرة الكاملة أعلاه، أو أنشئ CSR باستخدام ملف إعدادات OpenSSL.

الخطوة 3: تحقق من CSR وقدّمه

قبل إرسال CSR إلى هيئة إصدار الشهادات، فكّ تشفيره محليًا للتأكد من أن الموضوع وقائمة SAN تتطابقان مع ما قصدته:

openssl req -noout -text -verify -in yourdomain.csr

تحقق من أن سطري Subject وX509v3 Subject Alternative Name صحيحان وأن فحص التوقيع يعيد verify OK. يمكنك أيضًا فك تشفير CSR عبر الإنترنت باستخدام أداة فك تشفير CSR.

افتح ملف .csr في TextEdit (أو اطبعه باستخدام cat yourdomain.csr) وانسخ الكتلة بأكملها، بما في ذلك سطري -----BEGIN CERTIFICATE REQUEST----- و-----END CERTIFICATE REQUEST-----. الصقه في نموذج الطلب أثناء عملية الشراء. احتفظ بملف yourdomain.key المطابق بأمان على الجهاز نفسه؛ يجب ألا يُرسل أبدًا إلى هيئة إصدار الشهادات أو يتم مشاركته.

الطريقة الثالثة: macOS Server القديم (Server.app على Monterey)

إذا كنت لا تزال تشغّل macOS Server 5.12.2 على Monterey، فإن معالج Get a trusted certificate المدمج ينشئ CSR ويخزن المفتاح الخاص المطابق في System Keychain. يتطلب Server 5.12.x نظام macOS Monterey (كانت الإصدارات الأقدم مثل 5.11 تدعم Big Sur). لا يتوفر هذا التطبيق على Ventura والإصدارات الأحدث؛ استخدم طريقة Keychain Access أو OpenSSL أعلاه بدلاً من ذلك.

الخطوة 1: شغّل macOS Server

افتح Finder > Applications > Server.

الخطوة 2: حدد الخادم المستهدف

  • This Mac (YourServerName): ينشئ CSR على الجهاز المحلي. أدخل اسم المستخدم وكلمة المرور الخاصين بالمسؤول، ثم انقر على Allow.
  • Other Mac (YourServerName): ينشئ CSR على جهاز Mac بعيد. أدخل اسم المضيف الخاص به أو عنوان IP وبيانات اعتماد المسؤول، ثم انقر على Allow.

الخطوة 3: ابدأ CSR

  • في اللوحة اليسرى ضمن Server، حدد Certificates.
  • حدد موقع الشهادة الموقعة ذاتيًا الموجودة. تعمل هذه الشهادة للاختبار والشبكات الخاصة لكنها غير موثوقة من قبل المتصفحات العامة.
  • انقر على زر + أسفل الصفحة واختر Get a trusted certificate، ثم انقر على Next.

الخطوة 4: املأ تفاصيل CSR

  • Host name (CN): اسم النطاق المؤهل بالكامل المطلوب تأمينه، على سبيل المثال www.yoursite.com، أو *.yoursite.com لشهادة wildcard.
  • Contact Email Address: بريد إلكتروني صالح.
  • Organization (O): الاسم القانوني الكامل لشركتك بالنسبة لشهادات OV وEV. بالنسبة لشهادات DV اتركه فارغًا.
  • Organizational Unit (OU): تم إيقافه من قبل CA/Browser Forum. اتركه فارغًا.
  • Town / City (L): المدينة التي تم فيها تسجيل مؤسستك.
  • State / Province (ST): الاسم الكامل لولايتك أو مقاطعتك.
  • Country (C): حدد بلدك من القائمة.

راجع إدخالاتك، انقر على Next، ثم Save ملف CSR على القرص. يبقى المفتاح الخاص في System Keychain وسيكون مطلوبًا أثناء تثبيت الشهادة.

قدّم CSR وما يحدث بعد ذلك

قدّم محتويات ملف .csr (أو الملف المحفوظ من Server.app) أثناء طلب شهادة SSL الخاصة بك. بعد أن تتحقق هيئة إصدار الشهادات من طلبك وتصدر الشهادة، اتبع دليلنا حول كيفية تثبيت شهادة SSL على macOS لاستيراد الشهادة وتكوين خادم الويب الخاص بك. عادةً ما يتم إصدار شهادات DV في غضون دقائق؛ بينما قد تستغرق شهادات OV وEV من يوم إلى خمسة أيام عمل.

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

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

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

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