bg-tutorials

كيفية إنشاء CSR على IBM HTTP Server

يوضح لك هذا الدليل كيفية إنشاء CSR (طلب توقيع الشهادة) على IBM HTTP Server (IHS)، وكيفية القيام بنفس المهمة على HCL Domino (المعروف سابقاً باسم IBM Domino).

يخزّن IBM HTTP Server المفاتيح والشهادات في قاعدة بيانات مفاتيح CMS (ملف .kdb مع ملف “stash” بامتداد .sth)، تديرها من خلال الأداة الرسومية IKEYMAN أو أداة سطر الأوامر gskcapicmd من IBM Global Security Kit (GSKit) المرفقة مع IHS.

تغطي الخطوات أدناه كلا المسارين على IHS 9.0.5.x (الإصدار المدعوم حالياً)، ثم تعرض تدفقي CSR الخاصين بـ HCL Domino: قاعدة البيانات الكلاسيكية Server Certificate Administration (التي أُبقيت من أجل التثبيتات القديمة) ومهمة Certificate Manager الحديثة مع certstore.nsf، التي توصي بها HCL على Domino 12 وما بعده.

إنشاء CSR على IBM HTTP Server

إذا كنت قد أنشأت CSR بالفعل، انتقل مباشرة إلى كيفية تثبيت شهادة SSL على IBM HTTP Server.

يمكنك بناء الطلب بطريقتين على IHS: من خلال واجهة IKEYMAN الرسومية (الأداة الكلاسيكية القائمة على النقر)، أو باستخدام gskcapicmd عبر سطر الأوامر. تكتب كلتا الطريقتين المفتاح الخاص في نفس قاعدة بيانات مفاتيح CMS وتنتجان طلب PKCS #10 على شكل ملف .arm تقدّمه إلى جهة إصدار الشهادات (CA) الخاصة بك. اختر الواجهة الرسومية على سطح مكتب أو خادم مزوّد بشاشة عرض؛ واختر سطر الأوامر على خادم بلا واجهة رسومية أو عندما تريد سكريبت قابل للتكرار.

المتطلبات المسبقة: يجب أن يكون IBM HTTP Server مثبتاً، وأن يكون GSKit موجوداً على النظام (فهو مرفق داخل حزمة IHS)، وأن يكون دليل bin الخاص بـ IHS ضمن متغير PATH الخاص بك أو أن تعرف مساره الكامل (عادةً /opt/IBM/HTTPServer/bin/ على Linux/AIX، أو C:Program FilesIBMHTTPServerbin على Windows). كما تحتاج إلى دليل عمل حيث يمكنك كتابة قاعدة بيانات المفاتيح الجديدة وملف CSR، ومكان لتدوين كلمة مرور قاعدة بيانات المفاتيح.

الطريقة 1. إنشاء CSR باستخدام IKEYMAN (واجهة رسومية)

الخطوة 1. إنشاء قاعدة بيانات مفاتيح CMS جديدة (.kdb)

  • ابدأ تشغيل IKEYMAN. على Windows، افتح Start > IBM HTTP Server > Start Key Management Utility. على Linux أو AIX أو أنظمة UNIX الأخرى، شغّل ikeyman من دليل bin الخاص بـ IHS (مثال: /opt/IBM/HTTPServer/bin/ikeyman)؛ ستحتاج إلى جلسة عرض X11 فعّالة.
  • من القائمة، اختر Key Database File > New.
  • في القائمة المنسدلة Key database type، اختر CMS. هذا هو التنسيق الذي يقرأه IBM HTTP Server.
  • في File Name، أدخل اسماً لقاعدة البيانات الجديدة (مثال: key.kdb).
  • في Location، أشر إلى مجلد يمكنك العثور عليه لاحقاً (مثال: /opt/IBM/HTTPServer/ssl/ على Linux، أو C:IBMHTTPServerssl على Windows). انقر OK.
  • عيّن كلمة مرور قوية، ثم فعّل خيار Stash password to a file حتى تكتب IKEYMAN ملف “stash” مطابقاً بامتداد .sth بجانب ملف .kdb. يقرأ IHS ملف الـ stash عند بدء التشغيل حتى لا تضطر لكتابة كلمة المرور في كل مرة يبدأ فيها الخادم. انقر OK.

تُنشئ IKEYMAN ملفين في ذلك المجلد: قاعدة البيانات نفسها (key.kdb) وملف الـ stash (key.sth). تعامل مع كليهما باعتبارهما سرّيين. حافظ على أذونات الملفين محدودة (قابلة للقراءة فقط من قبل مستخدم IHS) وانسخهما احتياطياً إلى موقع آمن، لأنك لن تتمكن من استرداد المفتاح الخاص بدونهما.

الخطوة 2. إنشاء طلب الشهادة

  • مع فتح قاعدة البيانات الجديدة، ابحث عن القائمة المنسدلة Key database content وغيّرها إلى Personal Certificate Requests.
  • انقر New. سيفتح مربع حوار Create New Key and Certificate Request.

املأ الحقول بأحرف ASCII القياسية فقط؛ فالأحرف غير اللاتينية تُبطل الطلب:

  • Key Label: معرّف قصير لهذه الشهادة داخل قاعدة بيانات المفاتيح، مثال www.example.com. ستشير إلى هذا التسمية لاحقاً في httpd.conf باستخدام التوجيه SSLServerCert.
  • Key Size: اختر 2048. هذا هو الحد الأدنى الحالي الذي تقبله جميع جهات الإصدار العامة. اختر 3072 أو 4096 فقط إذا كانت سياستك تتطلب مفتاحاً أكبر؛ والمقايضة هي مصافحات TLS أبطأ قليلاً.
  • Signature Algorithm: اختر SHA256WithRSA (أو أقوى، مثل SHA384WithRSA). تجنّب أي شيء يستخدم SHA-1؛ فجهات الإصدار العامة لن تصدر شهادة بناءً عليه.
  • Common Name: اسم النطاق المؤهل بالكامل الذي تريد تأمينه، مثال www.example.com. لشهادة wildcard، ضع علامة نجمية أمام النطاق الأساسي، مثال *.example.com.
  • Organization: الاسم القانوني الكامل لشركتك، تماماً كما هو مسجّل. مطلوب لشهادات OV وEV؛ يتم تجاهله في DV.
  • Organizational Unit: هذا الحقل أصبح مهملاً للشهادات العامة (منتدى CA/Browser أنهى العمل به تدريجياً). اتركه فارغاً أو أدخل تسمية قصيرة مثل IT.
  • Locality: اسم المدينة الكامل (مثال Seattle، وليس SEA).
  • State/Province: اسم الولاية أو المقاطعة الكامل (مثال Washington، وليس WA).
  • Country: رمز الدولة المكوّن من حرفين وفق معيار ISO، مثال US أو GB أو DE.
  • Subject Alternative Names (SAN): أضف كل اسم مضيف يجب أن يظهر على الشهادة، بما في ذلك القيمة التي وضعتها في Common Name. المتصفحات الحديثة تتجاهل Common Name وتتحقق فقط من قائمة SAN، لذا فإن الشهادة متعددة الأسماء تحتاج إلى إدخالات هنا.
  • Enter the name of a file in which to store the certificate request: مسار واسم ينتهي بـ .arm، مثال /opt/IBM/HTTPServer/ssl/www_example_com.arm. احفظه في نفس مجلد قاعدة بيانات المفاتيح حتى يبقى الاثنان معاً.

انقر OK. تُنشئ IKEYMAN زوج المفاتيح داخل قاعدة بيانات المفاتيح، وتخزّن الطلب كإدخال معلّق، وتكتب CSR بصيغة PKCS #10 في ملف .arm الذي سمّيته.

الخطوة 3. نسخ CSR وتقديمه إلى جهة إصدار الشهادات

افتح ملف .arm في أي محرر نصوص (Notepad، vi، nano). سترى كتلة نصية مثل هذه:

-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDXjCCAkYCAQAwgZQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9u
... (many lines of base64) ...
-----END NEW CERTIFICATE REQUEST-----

حدّد الكتلة بأكملها، بما فيها سطري BEGIN وEND، وانسخها، ثم الصقها في حقل CSR في نموذج طلبك. يبقى المفتاح الخاص في قاعدة بيانات المفاتيح على الخادم؛ ونص CSR فقط هو ما يغادر الجهاز.

الطريقة 2. إنشاء CSR باستخدام gskcapicmd (سطر الأوامر)

أداة gskcapicmd (تُدرج أحياناً باسم gskcmd لمُغلّف Java، أو gsk8capicmd_64 في تثبيتات GSKit ذات 64 بت) تؤدي نفس عمل IKEYMAN دون جلسة رسومية. شغّلها من دليل bin الخاص بـ IHS.

الخطوة 1. إنشاء قاعدة بيانات مفاتيح CMS وملف stash

اختر مجلداً لقاعدة بيانات المفاتيح، ثم نفّذ:

gskcapicmd -keydb -create 
  -db /opt/IBM/HTTPServer/ssl/key.kdb 
  -pw your_strong_password 
  -type cms 
  -stash

تفصيل المعطيات:

  • -db: المسار الكامل لملف .kdb الجديد.
  • -pw: كلمة المرور التي تحمي قاعدة بيانات المفاتيح.
  • -type cms: التنسيق الذي يقرأه IHS.
  • -stash: يكتب ملف “stash” مطابقاً بامتداد .sth بجانب قاعدة البيانات حتى يتمكن IHS من قراءته دون طلب كلمة مرور عند بدء التشغيل.

على سطر الأوامر، تكون كلمة المرور مرئية في قوائم العمليات وسجل الأوامر. بعد إنشاء قاعدة البيانات، غيّر كلمة المرور إلى واحدة غير مسجّلة في السجل باستخدام gskcapicmd -keydb -changepw، أو مرّر كلمة المرور عبر متغير بيئة ثم قم بإلغاء تعيينه.

الخطوة 2. إنشاء طلب الشهادة

أنشئ زوج المفاتيح وCSR بصيغة PKCS #10 في خطوة واحدة، مع إدخالات SAN لكل اسم مضيف تريده على الشهادة:

gskcapicmd -certreq -create 
  -db /opt/IBM/HTTPServer/ssl/key.kdb 
  -pw your_strong_password 
  -label www.example.com 
  -dn "CN=www.example.com,O=Example Inc,L=Seattle,ST=Washington,C=US" 
  -size 2048 
  -sigalg SHA256WithRSA 
  -san_dnsname "www.example.com,example.com" 
  -file /opt/IBM/HTTPServer/ssl/www_example_com.arm

تفصيل المعطيات:

  • -label: معرّف هذه الشهادة داخل قاعدة بيانات المفاتيح. ستشير إليه لاحقاً من httpd.conf باستخدام التوجيه SSLServerCert.
  • -dn: الاسم المميّز (Distinguished Name)، مكتوب كسلسلة واحدة بسمات مفصولة بفواصل. استخدم CN= لاسم النطاق المؤهل بالكامل والرمز المكوّن من حرفين وفق ISO في C=.
  • -size: 2048 هو الحد الأدنى. استخدم 3072 أو 4096 فقط إذا فرضت سياستك ذلك.
  • -sigalg: SHA256WithRSA (أو SHA384WithRSA). لا تستخدم SHA-1.
  • -san_dnsname: قائمة مفصولة بفواصل تحتوي على كل اسم مضيف يجب أن يظهر على الشهادة. أدرج قيمة Common Name ضمن هذه القائمة. المتصفحات ومعظم مكتبات TLS تتحقق فقط من SAN، وليس من CN.
  • -file: المسار الذي تكتب فيه gskcapicmd ملف CSR بامتداد .arm.

إذا احتجت إلى مفتاح ECDSA بدلاً من RSA، استبدل -sigalg SHA256WithRSA بـ -sigalg SHA256WithECDSA وغيّر -size ليطابق المنحنى المستهدف (-size 256 لـ P-256، -size 384 لـ P-384). المنحنيات المدعومة هي secp256r1 (P-256) وsecp384r1 (P-384) وsecp521r1 (P-521). دعم ECDSA في IHS مكشوف بالكامل فقط من خلال gskcapicmd؛ ولا تتيح لك IKEYMAN اختيار ECDSA في إصدارات IHS الأقدم. لدعم ECDSA على إصدار معيّن من IHS، اتّبع إرشادات IBM لإدارة الشهادات.

الخطوة 3. عرض الطلب والتحقق منه

تأكد من أن الطلب أُضيف إلى قاعدة بيانات المفاتيح:

gskcapicmd -certreq -list 
  -db /opt/IBM/HTTPServer/ssl/key.kdb 
  -pw your_strong_password

لقراءة CSR والتحقق من Common Name، وإدخالات SAN، وحجم المفتاح، وخوارزمية التوقيع:

gskcapicmd -certreq -details 
  -db /opt/IBM/HTTPServer/ssl/key.kdb 
  -pw your_strong_password 
  -label www.example.com

ثم افتح ملف .arm في محرر نصوص، وانسخ الكتلة كاملة من BEGIN NEW CERTIFICATE REQUEST إلى END NEW CERTIFICATE REQUEST، وقدّمها في نموذج طلبك لدى جهة إصدار الشهادات.

تحقق من CSR قبل تقديمه (اختياري)

إذا كان لديك OpenSSL مثبتاً، نفّذ هذا الأمر على نفس الجهاز للتأكد من الموضوع (subject) وقائمة SAN وحجم المفتاح:

openssl req -noout -text -in www_example_com.arm

تفضّل استخدام أداة عبر الإنترنت؟ الصق محتوى الطلب في CSR Decoder الخاصة بـ SSL Dragon لقراءة نفس التفاصيل. تأكد من أن Common Name يطابق اسم المضيف الذي سيستخدمه العملاء، وأن كل اسم مضيف مطلوب يظهر تحت Subject Alternative Name.

بعد أن تُصدر جهة إصدار الشهادات شهادتك

يجب أن تعود الشهادة الموقّعة إلى نفس قاعدة بيانات المفاتيح التي أنتجت CSR، مقابل نفس التسمية. استلمها باستخدام سطر الأوامر:

gskcapicmd -cert -receive 
  -db /opt/IBM/HTTPServer/ssl/key.kdb 
  -pw your_strong_password 
  -file www_example_com.crt

أو نفّذ الأمر نفسه في IKEYMAN تحت Personal Certificates > Receive. أضف شهادات الجذر والوسيطة أولاً كشهادات موقّعة (signer certificates)، ثم حدّث httpd.conf بالتوجيهين KeyFile وSSLServerCert وأعد تشغيل IHS. الإجراء الكامل موضّح في كيفية تثبيت شهادة SSL على IBM HTTP Server.

إنشاء CSR على HCL Domino

ملاحظة: أصبح IBM Domino الآن يُعرف باسم HCL Domino. أتمّت HCL عملية الاستحواذ على محفظة IBM للتعاون (بما في ذلك Notes/Domino) في 1 يوليو 2019. على Domino 12 وما بعده، توصي HCL بمهمة Certificate Manager (مع مستندات certstore.nsf وTLS Credentials) لجميع أعمال TLS الجديدة. لا تزال قاعدة البيانات الكلاسيكية Server Certificate Administration (CERTSRV.NSF) تعمل مع التثبيتات القديمة وهي موثّقة أدناه، لكن يجب أن تستخدم عمليات النشر الجديدة Certificate Manager.

الطريقة أ. إنشاء CSR باستخدام Certificate Manager (Domino 12+ / 14.x)

  • أضف مهمة CertMgr على خادم Certificate Manager المخصص لديك حتى تُنشئ certstore.nsf. على كل خادم Domino يحتاج إلى قراءة مفاتيح TLS، شغّل CertMgr أيضاً حتى تُكرَّر قاعدة البيانات.
  • افتح certstore.nsf، وانتقل إلى TLS Credentials، وانقر Add TLS Credentials.
  • Host names: أدخل اسم النطاق المؤهل بالكامل الذي سيستخدمه العملاء بالضبط، وأضف كل اسم مضيف إضافي كـ Subject Alternative Name.
  • Servers with access: اختر خوادم Domino التي يجب أن تكون قادرة على قراءة المفتاح الخاص.
  • Certificate Provider: اختر Manual لأي جهة إصدار خارجية. (اختر Let’s Encrypt فقط إذا أردت أن يحصل CertMgr تلقائياً على شهادة مجانية صادرة عبر ACME.)
  • Key type: اختر RSA أو ECDSA.
  • RSA: اختر حجم 2048 بت (أو أكبر إذا تطلبت سياستك ذلك).
  • ECDSA: اختر منحنى (P-256 أو P-384؛ P-384 هو الافتراضي المدرج).
  • انقر Submit Request. يُنشئ CertMgr زوج المفاتيح، ويوقّع CSR، وينتقل المستند إلى Status = Waiting.
  • افتح المستند، وانسخ قيمة Certificate signing request (CSR) (أو استخدم إجراء Copy CSR الذي يظهر بعد المعالجة)، والصق كتلة PEM في نموذج طلبك لدى جهة إصدار الشهادات.

يبقى المفتاح الخاص داخل certstore.nsf، مشفّراً للخوادم التي صرّحت بها. لا تُصدِّره أبداً. عندما تُصدر جهة إصدار الشهادات شهادتك، الصق الشهادة الموقّعة (بالإضافة إلى سلسلة الإصدار) مرة أخرى في نفس مستند TLS Credentials، ويقوم CertMgr بتثبيتها لك. المرجع الكامل موجود في وثائق HCL الخاصة بـ Certificate Manager.

الطريقة ب. Server Certificate Administration الكلاسيكية (Domino القديم)

استخدم هذه الطريقة فقط على إصدارات Domino التي لا تزال تعتمد على ملفات key ring (.kyr + .sth). تصنّفها HCL كطريقة قديمة على Domino 12 وما بعده.

  • في عميل Domino Administrator، افتح Server Certificate Administration.
  • اختر Create Key Ring. أدخل اسم key ring وكلمة مرور قوية.
  • Key Size: اختر 2048 بت.
  • املأ الاسم المميّز (Distinguished Name):
  • Common Name: اسم النطاق المؤهل بالكامل الذي تريد تأمينه، مثال www.example.com.
  • Organization: الاسم القانوني الكامل لشركتك.
  • Organizational Unit: اتركه فارغاً أو أدخل تسمية قصيرة مثل IT (هذا الحقل مهمَل بالنسبة للشهادات العامة).
  • City or Locality: اسم المدينة الكامل، مثال Seattle.
  • State or Province: اسم الولاية الكامل، مثال Washington.
  • Country: الرمز المكوّن من حرفين وفق ISO، مثال US.
  • راجع التفاصيل وانقر Continue. ينشئ Domino ملف key ring.
  • اختر Create Certificate Request. تحت Method، اختر Paste into form on CA’s site. يعرض Domino نص CSR.
  • انسخ كتلة CSR بأكملها (بما فيها سطري BEGIN وEND) والصقها في نموذج طلبك لدى جهة إصدار الشهادات.

ملفات key ring الكلاسيكية لا تدعم إدخالات SAN عبر هذا الحوار. إذا احتجت إلى شهادة متعددة الأسماء، انتقل إلى Certificate Manager (الطريقة أ) أو أنشئ CSR خارج الخادم.

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

ما هي قاعدة بيانات مفاتيح CMS ولماذا يحتاجها IHS؟

لا يقرأ IBM HTTP Server ملفات مفاتيح وشهادات PEM بالطريقة التي يقرأها بها Apache القياسي. تخزّن حزمة TLS الخاصة به (mod_ibm_ssl، المدعومة بـ GSKit) المفاتيح وطلبات الشهادات والشهادات الصادرة في ملف واحد لقاعدة بيانات مفاتيح CMS بامتداد .kdb. يحتفظ ملف stash مطابق (.sth) بكلمة مرور قاعدة البيانات بصيغة يمكن لـ IHS قراءتها عند بدء التشغيل. تشير إلى قاعدة البيانات في IHS باستخدام التوجيه KeyFile في httpd.conf وتشير إلى شهادة معيّنة داخلها باستخدام SSLServerCert.

هل يجب أن أستخدم IKEYMAN أم gskcapicmd؟

كلاهما يكتب إلى نفس قاعدة بيانات المفاتيح، لذا يعمل كلاهما. IKEYMAN مريحة على سطح مكتب أو خادم مزوّد بشاشة عرض X11، وترشدك خلال الحوار. gskcapicmd هو الخيار الأفضل على الخوادم بلا واجهة رسومية، وفي الأتمتة، ومع مفاتيح ECDSA، التي لا تعرضها الواجهة الرسومية في إصدارات IHS الأقدم. يقوم العديد من المسؤولين بإنشاء قاعدة البيانات باستخدام سطر الأوامر ويستخدمون IKEYMAN لاحقاً فقط لفحصها.

ما وظيفة ملف stash (.sth)؟

يحتفظ ملف stash بكلمة مرور قاعدة بيانات المفاتيح بصيغة مبهمة حتى يتمكن IBM HTTP Server من فتح قاعدة البيانات عند بدء التشغيل دون طلب تفاعلي. إنه ليس تشفيراً: يمكن لأي شخص لديه صلاحية القراءة على الملف استرداد كلمة المرور. حافظ على أن يكون كل من .kdb و.sth قابلين للقراءة فقط من قبل مستخدم IHS، وخزّن قاعدة البيانات على نظام الملفات المحلي (وليس على مشاركة قابلة للقراءة من الجميع)، وانسخ الزوج احتياطياً إلى موقع آمن.

لماذا يُسمّى gskcapicmd باسم gsk8capicmd_64 على نظامي؟

هذا هو الملف التنفيذي المرفق مع GSKit 8.x ذي 64 بت، المُجمّع مع WebSphere Application Server 9 وIBM HTTP Server 9.0. يتبع GSKit 10 (المُجمّع مع WebSphere 10 وما بعده) نفس التسمية. اسم gskcapicmd في هذا الدليل هو المُغلّف الموزَّع من IHS الذي يستدعي الملف التنفيذي الصحيح لتثبيتك؛ وgsk8capicmd_64 هو نفس الأداة باسمها المُرقَّم بالإصدار. يعمل كلاهما مع الصياغة الموضّحة أعلاه.

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

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

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

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