يوضح لك هذا الدليل كيفية إنشاء CSR (طلب توقيع الشهادة) على Red Hat Enterprise Linux باستخدام سطر أوامر OpenSSL. تُنتج هذه العملية ملفين:
- مفتاح خاص، يبقى على خادمك ولا يُشارك أبدًا.
- CSR، ترسله إلى جهة إصدار الشهادات (CA) عند طلب الشهادة.
يغطي هذا الدليل طريقتين: طريقة أمر واحد لإصدارات OpenSSL الحديثة، وطريقة ملف تكوين للإصدارات الأقدم من OpenSSL التي لا تدعم الإضافات المضمّنة (inline extensions). كلتا الطريقتين تُنتجان CSR متوافق مع SAN وموقّع بخوارزمية SHA-256، وهو ما تتطلبه جهات إصدار الشهادات العامة.
قبل أن تبدأ: تحقق من إصدار OpenSSL الخاص بك
يتوفر OpenSSL بشكل افتراضي في كل إصدار مدعوم من RHEL. تأكد من وجوده وتحقق من الإصدار، لأن الإصدار هو ما يحدد الطريقة التي يمكنك استخدامها أدناه:
openssl version
ما يأتي مع كل إصدار حالي من Red Hat:
- RHEL 10 (صدر في عام 2025، وهو الإصدار الرئيسي الحالي): OpenSSL 3.x
- RHEL 9: OpenSSL 3.x
- RHEL 8: OpenSSL 1.1.1
- RHEL 7: OpenSSL 1.0.2 (بلغ RHEL 7 نهاية دعم الصيانة في عام 2024؛ انقل أحمال العمل هذه إلى إصدار مدعوم عندما تستطيع)
يدعم OpenSSL 1.1.1 و3.x علامة الإضافة المضمّنة المستخدمة في طريقة الأمر الواحد، لذا يمكنك على RHEL 8 و9 و10 استخدام الخيار أ أدناه. إذا أظهر أمر openssl version إصدار 1.0.2 أو أقدم (RHEL 7)، استخدم طريقة ملف التكوين في الخيار ب.
إذا كان OpenSSL غير موجود لسبب ما، ثبّته باستخدام مدير الحزم الخاص بإصدارك:
# RHEL 8, 9, and 10
sudo dnf install openssl
# RHEL 7
sudo yum install openssl
على RHEL 8 والإصدارات الأحدث، يُعد yum اسمًا بديلًا متوافقًا مع dnf، لذا يعمل كلا الأمرين على تلك الإصدارات.
الخيار أ: أمر واحد (OpenSSL 1.1.1 و3.x)
هذا هو المسار الأسرع على RHEL 8 و9 و10. يُنشئ المفتاح الخاص أولاً، ثم يبني CSR مع إضافة الأسماء البديلة للموضوع (SANs) بشكل مضمّن.
الخطوة 1: إنشاء المفتاح الخاص
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example.com.key
هذا يُنشئ مفتاحًا خاصًا من نوع RSA بحجم 2048 بت باسم example.com.key في المجلد الحالي. يُعد RSA بحجم 2048 بت الحد الأدنى الذي تقبله جهات إصدار الشهادات العامة؛ وإذا كنت تفضل مفتاحًا حديثًا من نوع المنحنى الإهليلجي، استبدل خيارات الخوارزمية بـ -algorithm EC -pkeyopt ec_paramgen_curve:P-256. احتفظ بهذا الملف سريًا: فهو يبقى على خادمك ولا يُرسل إطلاقًا إلى جهة إصدار الشهادات.
الخطوة 2: إنشاء CSR مع SANs
نفّذ الأمر التالي، مع تعديل حقول الموضوع وأسماء النطاقات ليتطابق مع بياناتك الخاصة:
openssl req -new -sha256 -key example.com.key -out example.com.csr
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=example.com"
-addext "subjectAltName=DNS:example.com,DNS:www.example.com"
استبدل example.com بنطاقك الفعلي في كل مكان، وحدد حقول الموضوع ببياناتك:
- C: رمز الدولة المكوّن من حرفين (مثل US).
- ST: الاسم الكامل للولاية أو المقاطعة.
- L: المدينة أو الموقع.
- O: الاسم القانوني للمؤسسة (بالنسبة لشهادة DV لنطاق واحد يمكن حذف هذا الحقل).
- CN: اسم النطاق الكامل الأساسي، مثل www.example.com.
أدرج كل اسم مضيف يجب أن تشمله الشهادة في قيمة subjectAltName. تتحقق المتصفحات الحديثة من قائمة SAN وليس من اسم الموضوع الشائع (Common Name)، لذا أضف كل اسم هناك، بما في ذلك النطاق الأساسي. يكتب الأمر CSR في ملف example.com.csr.
الخيار ب: طريقة ملف التكوين (إصدارات OpenSSL الأقدم)
إذا أظهر openssl version إصدارًا لا يدعم العلامة -addext (OpenSSL 1.0.2 والإصدارات الأقدم، كما في RHEL 7)، فحدد SANs في ملف تكوين صغير بدلاً من ذلك.
الخطوة 1: إنشاء ملف تكوين (san.cnf)
أنشئ ملفًا باسم san.cnf باستخدام محرر نصوص، وأدرج فيه ما يلي، مع تعديل القيم لتناسب نطاقك ومؤسستك:
[ req ]
default_bits = 2048
prompt = no
distinguished_name = dn
req_extensions = req_ext
[ dn ]
C = US
ST = California
L = San Jose
O = Your Company LLC
CN = example.com
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = example.com
DNS.2 = www.example.com
أضف أسماء مضيفين إضافية عبر مواصلة الترقيم: DNS.3، DNS.4، وهكذا.
الخطوة 2: إنشاء المفتاح وCSR
أنشئ المفتاح الخاص:
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example.com.key
ثم أنشئ CSR باستخدام ملف التكوين:
openssl req -new -sha256 -key example.com.key -out example.com.csr -config san.cnf
التحقق من CSR
قبل تقديمه، تأكد من أن CSR يحتوي على التفاصيل الصحيحة وتوقيع صالح. يطبع هذا الأمر الموضوع وقائمة SAN وحجم المفتاح، ويتحقق من توقيع الطلب الذاتي:
openssl req -noout -text -verify -in example.com.csr
تحقق من أن سطر Subject وإدخالات X509v3 Subject Alternative Name تسرد كل النطاقات التي تتوقعها، وأن المفتاح العام لا يقل عن 2048 بت من نوع RSA (أو مفتاح منحنى إهليلجي P-256)، وأن خوارزمية التوقيع هي SHA-256. السطر الذي يظهر بعبارة certificate request self-signature verify OK (تقول الإصدارات الأقدم verify OK) يعني أن CSR والمفتاح الخاص متطابقان. إذا كنت تفضل استخدام المتصفح، الصق CSR في أداتنا عبر الإنترنت فاحص CSR لمراجعة نفس التفاصيل.
إرسال CSR
افتح ملف example.com.csr في محرر نصوص وانسخ محتواه بالكامل، بما في ذلك سطري العلامتين -----BEGIN CERTIFICATE REQUEST----- و-----END CERTIFICATE REQUEST----- (تستخدم كل علامة خمس شرطات على كل جانب). الصق الكتلة كاملة في نموذج الطلب عند طلب الشهادة من مزود SSL الخاص بك.
احتفظ بالمفتاح الخاص، example.com.key، على الخادم. لا ترسله إلى جهة إصدار الشهادات ولا تلصقه في أي مكان: فهو النصف السري من الزوج ويجب ألا يخرج أبدًا من سيطرتك. بعد أن تتحقق جهة إصدار الشهادات من CSR وتُصدر الشهادة، اتبع تعليمات تثبيت SSL على Red Hat Linux لتثبيتها.
الأسئلة الشائعة
يُكتب المفتاح الخاص إلى الملف الذي تحدده في خيار -out (على سبيل المثال example.com.key) في المجلد الذي نفّذت فيه الأمر. يُنشأ محليًا ولا يُدرج إطلاقًا في CSR. احتفظ بنسخة احتياطية منه في مكان آمن وقيّد أذوناته، لأنك تحتاج إلى هذا المفتاح بالضبط لتثبيت الشهادة التي تُصدرها جهة إصدار الشهادات.
كلاهما مقبول. يُعد RSA بحجم 2048 بت الخيار الافتراضي الواسع التوافق والحد الأدنى الذي تسمح به جهات إصدار الشهادات العامة. أما مفتاح المنحنى الإهليلجي (ECDSA P-256) فهو أصغر وأسرع مع تقديم أمان معادل؛ أنشئه باستبدال خيارات المفتاح بـ -algorithm EC -pkeyopt ec_paramgen_curve:P-256. في كل الحالات، يجب توقيع CSR بخوارزمية SHA-256، وهو ما تقوم به الأوامر أعلاه بالفعل.
أُضيفت علامة -addext في OpenSSL 1.1.1. إذا كنت تستخدم إصدارًا أقدم (OpenSSL 1.0.2 على RHEL 7 مثلاً)، استخدم طريقة ملف التكوين في الخيار ب، التي تُعرّف الأسماء البديلة للموضوع في ملف san.cnf بدلاً من سطر الأوامر.
نفّذ الأمر openssl req -noout -text -verify -in example.com.csr على الخادم. يطبع الموضوع، وقائمة SAN كاملة، ونوع المفتاح وحجمه، وخوارزمية التوقيع، ويؤكد أن CSR يتطابق مع مفتاحه الخاص. راجع تلك الحقول قبل لصق CSR في نموذج الطلب.
الصق الكتلة كاملة، من -----BEGIN CERTIFICATE REQUEST----- إلى -----END CERTIFICATE REQUEST----- شاملة، دون حذف أي حرف. تستخدم كل من العلامتين خمس شرطات على كل جانب. لا تلصق المفتاح الخاص.
نعم. تتوافق AlmaLinux وRocky Linux وCentOS Stream من ناحية الملفات الثنائية مع إصدار RHEL المطابق وتأتي بنفس إصدار OpenSSL، لذا فإن الأوامر متطابقة. لدينا أيضًا درس تعليمي مخصص حول كيفية إنشاء CSR على CentOS إذا احتجت إليه.
وفِّر 10% على شهادات SSL عند الطلب اليوم!
إصدار سريع، وتشفير قوي، وثقة في المتصفح بنسبة 99.99%، ودعم مخصص، وضمان استرداد المال خلال 25 يومًا. رمز القسيمة: SAVE10

