bg-tutorials

كيفية إنشاء CSR على Sentora

يوضح لك هذا الدليل كيفية إنشاء CSR (طلب توقيع الشهادة) على Sentora باستخدام OpenSSL. لا تحتوي لوحة تحكم Sentora على أداة CSR مدمجة، لذا تقوم بإنشاء الطلب على الخادم نفسه، الذي يعمل على Apache وLinux. ينتج أمر واحد ملفين في آنٍ واحد: مفتاح خاص يبقى على خادمك، وطلب CSR الذي تقدمه إلى جهة إصدار الشهادات (CA).

لا تزال Sentora بطيئة التطور لكنها ليست مهجورة؛ الإصدار المستقر الحالي هو v2.0.2 (مايو 2024، على PHP 7.4)، ويتولى صيانته مطورو ZPanel السابقون، وسير عمل OpenSSL أدناه لا يتأثر بإصدار اللوحة.

إذا كنت قد أنشأت بالفعل طلب CSR الخاص بك واستلمت الشهادة الصادرة من جهة إصدار الشهادات، فتخطَّ إلى تثبيت شهادة SSL على Sentora. وإلا، فاتبع الخطوات أدناه.

الخطوة 1: تسجيل الدخول إلى الخادم كمستخدم root

افتح جلسة SSH إلى الخادم الذي يشغّل Sentora وتحوّل إلى المستخدم root. إنشاء CSR لا يتطلب صلاحيات root بشكل صارم، لكنك ستحتاج إليها لتثبيت OpenSSL في الخطوة التالية إذا لم يكن موجودًا:

sudo -i

الخطوة 2: تأكيد تثبيت OpenSSL

يأتي OpenSSL مثبتًا مسبقًا مع كل إصدار حديث من Debian وUbuntu وCentOS وAlmaLinux وRocky Linux، لذا من شبه المؤكد أنه موجود بالفعل. تحقق من الإصدار:

openssl version

إذا أظهر الأمر رقم إصدار، انتقل إلى الخطوة 3. إذا لم يكن مثبتًا، أضِفه باستخدام مدير الحزم الخاص بتوزيعتك.

على Debian أو Ubuntu:

apt update && apt install -y openssl

على CentOS أو AlmaLinux أو Rocky Linux:

dnf install -y openssl

على الأنظمة الأقدم حيث لا يتوفر dnf، يعمل الأمر yum install -y openssl بالطريقة نفسها.

الخطوة 3: إنشاء المفتاح الخاص وطلب CSR

نفّذ الأمر أدناه من دليل يمكنك الكتابة فيه، مثل الدليل الرئيسي (home directory). ينشئ هذا الأمر المفتاح الخاص وطلب CSR في خطوة واحدة ويتضمن أسماء بديلة للموضوع (SANs) التي تتطلبها المتصفحات الحديثة وجهات إصدار الشهادات:

openssl req -new -newkey rsa:2048 -nodes 
-keyout example.key 
-out example.csr 
-subj "/C=US/ST=New York/L=New York/O=Example LLC/CN=example.com" 
-addext "subjectAltName=DNS:example.com,DNS:www.example.com"

إليك ما يفعله كل جزء:

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

استبدل كل عنصر نائب بالتفاصيل الحقيقية الخاصة بك:

  • example.com: نطاقك الفعلي، في كل من CN وقائمة SAN.
  • C، ST، L، O: رمز بلدك المكوّن من حرفين (بأحرف كبيرة، على سبيل المثال US أو GB)، والولاية أو المقاطعة، والمدينة، واسم المنظمة القانونية. بالنسبة لشهادة التحقق من النطاق (DV) لا يتم التحقق من هذه الحقول، لكن الأمر لا يزال بحاجة إلى قيم صالحة.
  • example.key وexample.csr: أي أسماء ملفات تريدها، طالما تحافظ على الاتساق.

يوقّع OpenSSL الحديث الطلب باستخدام SHA-256 افتراضيًا، وهو ما تتطلبه جهات إصدار الشهادات، لذا لا حاجة لإضافة علامة موجز (digest) منفصلة.

تأمين نطاق شامل (wildcard) أو نطاقات فرعية إضافية

لإضافة المزيد من أسماء المضيفين، وسّع قائمة SAN بإدخالات DNS: إضافية مفصولة بفواصل، على سبيل المثال DNS:api.example.com. بالنسبة لشهادة النطاق الشامل (wildcard)، اضبط CN على *.example.com واحتفظ بالنطاق الأساسي (apex) في قائمة SAN. تغطي شهادة النطاق الشامل مستوى واحدًا بالضبط من النطاقات الفرعية (www.example.com، mail.example.com) لكنها لا تغطي النطاق الأساسي المجرد (example.com)، لذا يجب إدراج النطاق الأساسي بشكل منفصل ليكون مشمولًا:

-addext "subjectAltName=DNS:*.example.com,DNS:example.com"

هل تفضّل مفتاح ECDSA؟

مفاتيح ECDSA أصغر حجمًا وأسرع من RSA عند نفس مستوى الأمان، وهي مدعومة من جميع المتصفحات الحالية. لإنشاء مفتاح وطلب CSR من نوع P-256 (prime256v1) بدلًا من ذلك، استبدل وسيطة -newkey:

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes 
-keyout example.key 
-out example.csr 
-subj "/C=US/ST=New York/L=New York/O=Example LLC/CN=example.com" 
-addext "subjectAltName=DNS:example.com,DNS:www.example.com"

يحافظ الخيار ec_param_enc:named_curve على تخزين المنحنى بالاسم، وهو ما يتطلبه معيار PKIX؛ فبدونه، تقوم بعض إصدارات OpenSSL بتضمين معاملات المنحنى الكاملة وترفض جهة إصدار الشهادات الطلب.

الخطوة 4: التحقق من طلب CSR

قبل تقديم الطلب، تأكد من أنه يحتوي على النطاق الصحيح وقيم SAN الصحيحة وأن توقيعه صالح. ينفّذ هذا الأمر فك ترميز CSR ويتحقق من التوقيع محليًا:

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

ابحث عن العبارة verify OK في المخرجات، وتحقق من أن سطر Subject يعرض الاسم الشائع الخاص بك، وتأكد من أن قسم X509v3 Subject Alternative Name يدرج كل اسم مضيف تتوقعه. إذا كان أحد إدخالات SAN مفقودًا، أعِد إنشاء طلب CSR بقيمة -addext الصحيحة. يمكنك أيضًا لصق الطلب في أداة فك تشفير CSR عبر الإنترنت للتحقق من هذه الحقول في متصفحك.

الخطوة 5: تحديد موقع CSR وتقديمه

اعرض محتوى دليل العمل للتأكد من وجود كلا الملفين:

ls -l example.key example.csr

أنت على خادم Linux، لذا افتح CSR باستخدام عارض طرفية (terminal viewer)، وليس محرر Windows. اطبعه على الشاشة باستخدام:

cat example.csr

انسخ الكتلة بأكملها، بما في ذلك السطرين الأول والأخير. يُحدَّد CSR بعلامات CERTIFICATE REQUEST مع خمس شرطات على كل جانب، وليس بعلامات CERTIFICATE الخاصة بالشهادة الصادرة:

-----BEGIN CERTIFICATE REQUEST-----
MIIC...base64-encoded data...AB
-----END CERTIFICATE REQUEST-----

الصق تلك الكتلة في نموذج طلب SSL الخاص بك. بعد أن تتحقق جهة إصدار الشهادات من الطلب وتصدر شهادتك، اتبع دليلنا حول تثبيت شهادة SSL على Sentora لنشرها. احتفظ بملف example.key على الخادم: فأنت بحاجة إليه إلى جانب الشهادة الصادرة لتفعيل HTTPS، ويجب ألا ترسله أبدًا إلى جهة إصدار الشهادات أو لأي شخص آخر.

إذا كنت تفضّل عدم استخدام سطر الأوامر على الإطلاق، يمكنك إنشاء الطلب باستخدام أداة إنشاء CSR ولصق النتيجة في طلبك.

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

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

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

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