يوضح لك هذا الدليل كيفية إنشاء CSR (طلب توقيع شهادة) لـ Apache Tomcat باستخدام أداة Java keytool. تتكون العملية من أمرين: أولًا keytool -genkeypair ينشئ مخزن مفاتيح (keystore) ومفتاحًا خاصًا تحت اسم بديل (alias) مختار، ثم keytool -certreq يصدّر CSR المطابق. يُعاد استخدام اسم البديل نفسه لاحقًا عند استيراد الشهادة الموقّعة، بحيث يظل المفتاح وCSR والشهادة النهائية جميعها في مكان واحد.
ما الذي ستحتاجه
- تثبيت Java (JDK أو JRE) بحيث يكون أمر keytool متوفرًا. تأكد من ذلك باستخدام
keytool -help. - الوصول إلى الطرفية (Shell أو Terminal) على الخادم الذي سيستضيف المفتاح الخاص. يجب أن يبقى المفتاح الخاص على هذا الخادم.
- اسم النطاق المؤهل بالكامل (FQDN) الذي تريد تأمينه، على سبيل المثال www.yourdomain.com، بالإضافة إلى أي نطاقات إضافية تريد تغطيتها (لحقل SAN).
- تفاصيل مؤسستك القانونية (الدولة، الولاية، المدينة، اسم المؤسسة) الخاصة بالاسم المميز (Distinguished Name) في CSR.
الخطوة 1: إنشاء مخزن المفاتيح والمفتاح الخاص
إذا كنت قد أنشأت CSR بالفعل، تخطّ إلى إرسال CSR ثم إلى تثبيت شهادة SSL على Tomcat.
افتح الطرفية على الخادم وأنشئ مخزن مفاتيح جديدًا بصيغة PKCS12. PKCS12 هي المعيار الحديث والقابل للنقل، وهي الصيغة الافتراضية لمخزن المفاتيح في Java منذ JDK 9؛ أما الصيغة الأقدم JKS فهي مهجورة. نفّذ الأمر التالي:
keytool -genkeypair
-alias tomcat
-keyalg RSA -keysize 2048
-storetype PKCS12
-keystore yourdomain.p12
-validity 825
معاني هذه الخيارات:
- -alias tomcat: اسم الإدخال داخل مخزن المفاتيح. اختر تسمية تتذكرها (غالبًا tomcat أو نطاقك). سجّلها. يجب استخدام هذا الاسم البديل نفسه بالضبط عند إنشاء CSR ومرة أخرى عند استيراد الشهادة الموقّعة.
- -keyalg RSA -keysize 2048: مفتاح RSA بحجم 2048 بت هو الحد الأدنى العام الحالي. بالنسبة لمخازن المفاتيح الجديدة، يُعد 3072 بت ترقية معقولة للمفاتيح ذات العمر الأطول. تقبل معظم مراجع التصديق العامة أيضًا ECDSA (-keyalg EC -groupname secp256r1) إذا كنت تفضل مفتاحًا أصغر وأسرع.
- -storetype PKCS12: يفرض استخدام مخزن المفاتيح الحديث PKCS12. الامتداد المطابق هو .p12 (أو .pfx).
- -keystore yourdomain.p12: ملف مخزن المفاتيح الذي سيتم إنشاؤه. استبدل الاسم باسم تتذكره، واحتفظ بهذا الملف في مكان آمن؛ فهو يحتوي على مفتاحك الخاص.
- -validity 825: المدة التي تكون فيها الشهادة المؤقتة الموقّعة ذاتيًا داخل مخزن المفاتيح صالحة. يتم استبدالها لاحقًا بالشهادة الموقّعة من مرجع التصديق، فالقيمة الدقيقة هنا لا تؤثر على مدة الصلاحية في بيئة الإنتاج.
يطلب منك keytool بعد ذلك كلمة مرور مخزن المفاتيح. اختر كلمة مرور قوية واحفظها في مدير الأسرار الخاص بك: ستحتاج إليها في كل أمر keytool لاحق، وفي ملف server.xml الخاص بـ Tomcat. مع مخازن المفاتيح من نوع PKCS12، تكون كلمة مرور المفتاح مطابقة لكلمة مرور مخزن المفاتيح، لذا هناك كلمة مرور واحدة فقط عليك تذكرها.
الخطوة 2: إدخال تفاصيل مؤسستك (DN)
يطلب keytool الآن الاسم المميز (Distinguished Name – DN): حقول الهوية التي تدخل في CSR. أجب عن كل مطالبة بالقيمة الدقيقة والقانونية لمؤسستك. الدقة وعلامات الترقيم مهمة: سيرفض مرجع التصديق أي تباين مع السجلات التجارية العامة.
- الاسم الأول والأخير (CN): هذه هي صياغة keytool، لكنه في الواقع حقل الاسم المشترك (Common Name). أدخل اسم النطاق المؤهل بالكامل (FQDN) الذي تريد تأمينه، مثل www.yourdomain.com، أو نطاقًا شاملًا (wildcard) مثل *.yourdomain.com. لا تُدخل اسم شخص.
- الوحدة التنظيمية (OU): لم تعد مراجع التصديق العامة تُصدر هذا الحقل، والأفضل تركه فارغًا. اضغط Enter للتخطي.
- المؤسسة (O): الاسم القانوني الكامل لشركتك، على سبيل المثال Your Company LLC.
- المدينة أو الموقع (L): اسم المدينة الكامل، على سبيل المثال San Jose. لا تستخدم اختصارات.
- الولاية أو المحافظة (ST): الاسم الكامل للولاية أو المحافظة، على سبيل المثال California. لا تستخدم رمزًا من حرفين.
- رمز الدولة (C): رمز الدولة المكوّن من حرفين وفق معيار ISO، على سبيل المثال US، GB، DE.
بعد آخر مطالبة، يعرض keytool ملخصًا مثل CN=www.yourdomain.com, OU=, O=Your Company LLC, L=San Jose, ST=California, C=US. اكتب yes للتأكيد. يصبح ملف مخزن المفاتيح موجودًا الآن مع إدخال واحد: اسمك البديل، الذي يحمل المفتاح الخاص وشهادة مؤقتة موقّعة ذاتيًا.
إذا كنت تفضل أمرًا غير تفاعلي، مرر DN بشكل مباشر وتجاوز المطالبات:
keytool -genkeypair
-alias tomcat
-keyalg RSA -keysize 2048
-storetype PKCS12
-keystore yourdomain.p12
-dname "CN=www.yourdomain.com, O=Your Company LLC, L=San Jose, ST=California, C=US"
-validity 825
الخطوة 3: إنشاء CSR مع SAN
تتحقق المتصفحات والعملاء الحديثون من الشهادات باستخدام امتداد الاسم البديل للموضوع (Subject Alternative Name – SAN)، لا بالاسم المشترك وحده. اطلب SANs مباشرة في CSR بحيث يضمّها مرجع التصديق في الشهادة الصادرة. استخدم نفس الاسم البديل ومخزن المفاتيح الذي استخدمته في الخطوة 1:
keytool -certreq
-alias tomcat
-keystore yourdomain.p12
-file yourdomain.csr
-ext san=dns:yourdomain.com,dns:www.yourdomain.com
معاني هذه الخيارات:
- -alias tomcat: يجب أن يطابق الاسم البديل من الخطوة 1. هذا هو الاسم البديل الذي يوقّع مفتاحه الخاص الطلب.
- -keystore yourdomain.p12: يجب أن يطابق مخزن المفاتيح من الخطوة 1.
- -file yourdomain.csr: اسم ملف الإخراج لـ CSR.
- -ext san=dns:…: امتداد الاسم البديل للموضوع. اذكر كل اسم مضيف يجب أن تغطيه الشهادة، بما في ذلك النطاق الأساسي المجرد (yourdomain.com) والنطاق الفرعي www. أضف مزيدًا من الإدخالات مفصولة بفواصل، على سبيل المثال dns:api.yourdomain.com.
يطلب keytool كلمة مرور مخزن المفاتيح ويكتب CSR إلى yourdomain.csr في المجلد الحالي.
مهم للغاية: احتفظ باسمك البديل ومخزن مفاتيحك
أكثر خطأ شائع في keytool على Tomcat هو استيراد الشهادة الموقّعة تحت اسم بديل جديد. القيام بذلك يخزّن الشهادة كإدخال موثوق مستقل دون مفتاح خاص مرتبط بها، ولن يعمل TLS. استورد دائمًا الرد الموقّع مرة أخرى إلى نفس الاسم البديل الذي يحمل المفتاح الخاص (الاسم البديل من الخطوة 1).
سجّل هذه القيم الثلاث الآن، قبل إغلاق الطرفية:
- الاسم البديل (alias) (في هذا الدليل، tomcat).
- مسار ملف مخزن المفاتيح (على سبيل المثال yourdomain.p12).
- كلمة مرور مخزن المفاتيح.
إذا لم تكن متأكدًا من الاسم البديل الذي يحمل مفتاحك، اعرض محتويات مخزن المفاتيح وابحث عن الإدخال الذي نوعه PrivateKeyEntry:
keytool -list -v -keystore yourdomain.p12
الخطوة 4: تحقق من CSR قبل إرساله
اكتشف الأخطاء المطبعية في DN أو أي SANs مفقودة قبل أن يتحقق منها مرجع التصديق. اطبع CSR باستخدام keytool:
keytool -printcertreq -file yourdomain.csr
أو، إذا كان OpenSSL مثبتًا، يمكنك استخدامه بدلًا من ذلك:
openssl req -noout -text -in yourdomain.csr
تأكد من ثلاثة أمور في الإخراج: يظهر Subject اسمك المميز (DN) بدقة، ويسرد Subject Alternative Name كل اسم مضيف تحتاجه، ويطابق حجم Public-Key ما طلبته (RSA بحجم 2048 بت، أو ما اخترته). يمكنك أيضًا لصق CSR في أداة فك تشفير CSR الخاصة بنا للحصول على نفس الفحص في المتصفح.
الخطوة 5: إرسال CSR إلى مرجع التصديق
افتح yourdomain.csr في أي محرر نصوص. الملف نص عادي، يبدأ بـ —–BEGIN CERTIFICATE REQUEST—– وينتهي بـ —–END CERTIFICATE REQUEST—–. انسخ الكتلة كاملة، بما في ذلك سطور البداية والنهاية، ولصقها في حقل CSR عند إتمام الشراء لدى مرجع التصديق. على Windows، استخدم Ctrl + A ثم Ctrl + C لتحديد النص الكامل؛ على macOS، استخدم Cmd + A ثم Cmd + C.
بعد أن يتحقق مرجع التصديق من طلبك ويصدر الشهادة، تابع مع كيفية تثبيت شهادة SSL على Tomcat. ستستورد الشهادة الموقّعة مرة أخرى إلى نفس الاسم البديل في نفس مخزن المفاتيح، ثم توجّه موصل HTTPS الخاص بـ Tomcat إلى مخزن المفاتيح ذلك.
وفِّر 10% على شهادات SSL عند الطلب اليوم!
إصدار سريع، وتشفير قوي، وثقة في المتصفح بنسبة 99.99%، ودعم مخصص، وضمان استرداد المال خلال 25 يومًا. رمز القسيمة: SAVE10


