bg-tutorials

دروس شهادة توقيع الكود

لا تُثبَّت شهادة توقيع الكود بالطريقة التي تُثبَّت بها شهادة SSL. فلا يوجد ملف يوضع على خادم. يجب إنشاء المفتاح الخاص داخل قطعة من العتاد المعتمد، وأن يبقى فيها طوال عمر الشهادة كاملاً، وهذا الأمر يغيّر ترتيب كل خطوة تالية: ما تختاره عند إتمام الطلب، وما يجب عليك إرساله إلى جهة إصدار الشهادات، وما يصلك عند انتهاء التحقق، وما تكتبه في النهاية عندما توقّع أي شيء.

تتناول هذه الدروس كل مرحلة من هذه المراحل الخاصة بالشهادات التي تبيعها SSL Dragon. استخدم هذه الصفحة لمعرفة المرحلة التي أنت فيها، والتحقق من القواعد القليلة التي تنطبق بصرف النظر عن جهة إصدار الشهادات أو الجهاز الذي تستخدمه.

التنقل السريع

ما يحكم كل طلب حالياً

ثلاثة تغييرات في القطاع تكمن تحت جميع الدلائل الثمانية أدناه. قراءتها أولاً توضّح لماذا تبدو العملية على هذا الشكل، وتوفّر عليك اتباع تعليمات قديمة لا تزال متداولة على نطاق واسع.

يجب إنشاء المفتاح الخاص وحفظه في عتاد معتمد

منذ 1 يونيو 2023، تُلزم المتطلبات الأساسية لتوقيع الكود الصادرة عن منتدى CA/Browser بأن تتم حماية المفتاح الخاص بواسطة وحدة تشفير معتمدة على الأقل بمستوى FIPS 140-2 Level 2 أو Common Criteria EAL 4+. لم يعد بإمكان جهات إصدار الشهادات السماح لك بإنشاء مفتاح في متصفح أو على حاسوب محمول وتنزيل ملف PFX بعد ذلك.

كل شيء آخر ينبع من هذه القاعدة الواحدة. لهذا السبب يطلب منك نموذج الطلب اختيار طريقة تسليم من الأساس، ولهذا السبب يوجد ملف تصديق (attestation) (وهو الوسيلة التي تُثبت بها لجهة إصدار الشهادات أن مفتاحاً لم ترَ إنشاءه فعلاً تم إنشاؤه داخل عتاد متوافق)، ولهذا السبب يعني تثبيت الشهادة وضعها في فتحة على جهاز بدلاً من استيرادها إلى خادم.

الشهادات صالحة الآن لأشهر لا لسنوات

خفض التصويت CSC-31 الصادر عن منتدى CA/Browser، والمعتمد في 17 نوفمبر 2025 كإصدار 3.10.0 من المتطلبات الأساسية لتوقيع الكود، الحد الأقصى لصلاحية شهادة توقيع الكود الموثوقة علنياً من 39 شهراً إلى 460 يوماً للشهادات الصادرة في أو بعد 1 مارس 2026. وينطبق هذا على الشهادات القياسية وشهادات التحقق الموسع (Extended Validation) على حد سواء.

تحرّكت كلتا جهتي الإصدار مبكراً واستقرّت كلتاهما على 459 يوماً، أي نحو خمسة عشر شهراً: Sectigo بدءاً من 23 فبراير 2026 و DigiCert بدءاً من 24 فبراير 2026. أزالت DigiCert في الوقت نفسه خياري السنتين والثلاث سنوات. أي دليل، بما في ذلك الإصدارات الأقدم من هذه الصفحات، يعرض عليك شهادة توقيع كود صالحة لثلاث سنوات يصف منتجاً لم يعد موجوداً. عمليات الشراء متعددة السنوات تعني الآن تغطية متعددة السنوات مع إعادة إصدار، لا شهادة واحدة طويلة الأمد. مدة الصلاحية الأقصر هي أيضاً السبب في أن ختم التوقيت الزمني (timestamping) لكل توقيع لم يعد أمراً اختيارياً، لأن ختم التوقيت هو ما يحافظ على صلاحية البرامج التي قمت بشحنها فعلاً بعد انتهاء صلاحية الشهادة.

التحقق الموسع (EV) لا يتجاوز SmartScreen بعد الآن

كانت شهادات توقيع الكود EV تتجاوز في السابق تحذير Microsoft Defender SmartScreen على تطبيق جديد بالكامل. أُزيلت هذه السلوكية في أغسطس 2024، عندما أُخرجت معرّفات كائن EV لتوقيع الكود من الجذور في برنامج Microsoft Trusted Root Program. تعامل Windows الآن كل شهادات توقيع الكود بالطريقة نفسها، ويبني الملف الموقَّع بـ EV سمعته بالطريقة نفسها التي يبنيها ملف موقَّع بـ OV.

لا يزال EV يعني تدقيقاً أكثر صرامة لمؤسستك، وبعض قواعد المشتريات في المؤسسات لا تزال تطلبه، فهو لم يتوقف عن كونه مفيداً. لكنه لم يعد يوفّر ثقة فورية على Windows، ولن يغيّر أي إجراء توقيع في أي من هذه الصفحات ذلك.

المرحلة 1: اختيار أو تأكيد طريقة التسليم

هذا هو القرار الأول والوحيد الذي لا يمكنك إعادة النظر فيه لاحقاً. فهو يحدد ما إذا كانت جهة إصدار الشهادات ترسل لك عتاداً أم تتوقع منك توفير عتادك الخاص، ويحدد بالتالي أي الدلائل أدناه ينطبق عليك.

أي طريقة تسليم لشهادة توقيع الكود يجب اختيارها؟

يقارن بين الخيارين المتوفرين في نموذج الطلب، رمز يقوم جهة إصدار الشهادات بتحميله وشحنه مسبقاً مقابل عتاد تملكه أنت فعلاً، مع تكاليف الشحن الحالية لكل جهة إصدار، والأجهزة التي تقبلها Sectigo و DigiCert حالياً فعلياً، وما تفعله خدمات التوقيع السحابية التي تديرها جهات الإصدار بشكل مختلف، ولماذا يُقفَل هذا الاختيار عند إتمام الطلب. اقرأه قبل أن تطلب: فهو يسرد أيضاً الأسئلة التي يجدر تسويتها مسبقاً، مثل ما إذا كان جهازك مدرجاً في قائمة جهة الإصدار المعتمدة وما إذا كان قادراً فعلاً على إصدار تصديق (attestation). وإذا كان الطلب موجوداً فعلاً، فهو يوضّح ما يمكن وما لا يمكن تغييره في تلك المرحلة.

المرحلة 2: إنشاء المفتاح وطلب CSR داخل عتادك الخاص

تخطَّ هذه المرحلة إذا كانت جهة إصدار الشهادات ترسل لك رمزاً محمّلاً مسبقاً، لأن المفتاح يُنشأ لك قبل إرسال الجهاز بالبريد. تنطبق هذه المرحلة فقط إذا اخترت استخدام عتاد تملكه أنت فعلاً، وفي هذه الحالة لا يمكن لجهة إصدار الشهادات إصدار أي شيء حتى ترسل لها طلب CSR تم إنشاؤه على ذلك الجهاز إضافة إلى حزمة تصديق (attestation) تثبت أن المفتاح تم إنشاؤه هناك ولا يمكن استخراجه.

تحذير واحد قبل أن تبدأ على YubiKey: بلغت واجهة YubiKey Manager GUI التي تعتمد عليها التعليمات القديمة نهاية عمرها في 19 فبراير 2026. أداة سطر الأوامر ykman وتطبيق Yubico Authenticator لم يتأثرا وهما ما تستخدمه الدلائل أدناه.

إنشاء CSR والتصديق على YubiKey 5 FIPS

المسار الكامل باستخدام ykman على YubiKey 5 FIPS: وضع الرمز أولاً في الوضع المعتمد من FIPS (يرفض الجهاز إنشاء مفتاح دون ذلك)، اختيار الفتحة (slot) وخوارزمية المفتاح، إنشاء زوج المفتاح وطلب CSR، تصدير شهادة التصديق (attestation certificate) والشهادة الوسيطة من Yubico، ودمجها في ملف PEM واحد كما تتوقعه جهة إصدار الشهادات. كما يتناول فخ الترميز في PowerShell الذي يجعل ملف تصديق صحيح في الأساس يُرفَض.

دليل Luna Network HSM 7: CSR والتصديق

نفس المهمة على Thales Luna Network HSM، باستخدام أداة cmu المستقلة من Luna HSM Client: إنشاء زوج مفتاح RSA بالخصائص التي يعتمد عليها التصديق، قراءة مقابض الكائنات (object handles)، بناء طلب CSR بخوارزمية التوقيع الصحيحة، وإنشاء تأكيد المفتاح العام الذي تتحقق منه جهة إصدار الشهادات. يستحق القراءة حتى لو كنت قد شغّلت هذه الأوامر من قبل، لأن النسخة المنشورة على نطاق واسع في هذا القطاع تُنتج طلب CSR موقَّعاً بـ SHA-1 إلا إذا أضفت خياراً واحداً.

المرحلة 3: تمرير التحقق

يتعلق التحقق بمن أنت، لا بعتادك، ولذلك يسير بالتوازي مع المرحلتين 1 و 2 بدلاً من أن يأتي بعدهما. تؤكّد جهة إصدار الشهادات أن الكيان المذكور في الشهادة موجود قانونياً، وأنه يمكن الوصول إليه على عنوان ورقم هاتف أو عنوان بريد إلكتروني يمكن التحقق منه من مصدر آخر غير نموذج طلبك، وأن الشخص الذي وافق على الطلب كان مخوّلاً بذلك. هنا تتعطل معظم الطلبات المتأخرة تقريباً، وهذه هي المرحلة الوحيدة التي لا يمكنك تسريعها بنفسك بالعمل بسرعة أكبر.

تدير جهتا الإصدار عمليتين مختلفتين، فاختر الدليل المطابق لشهادتك.

كيفية التحقق من شهادات توقيع الكود من Sectigo و Comodo

ما تفحصه Sectigo وبأي ترتيب، بالنسبة للتحقق من المؤسسة (Organization Validation)، وللمطورين الأفراد بدون شركة، وللتحقق الموسع (Extended Validation): فحص السجل الرسمي لاسمك القانوني، جلسة Video ID الآلية، التحقق من العنوان وجهة الاتصال، اتفاقية المشترك، مكالمة التأكيد التي تُغلق الطلب، والخطوات الإضافية للتحقق من وجود تشغيلي فعلي والمراجعة الثانية التي يضيفها EV. يوضّح أيضاً لماذا تظهر أوراق تحمل علامة Comodo في طلب من Sectigo، وما ينبغي فعله عندما لا يكون السجل الحكومي وحده كافياً.

كيفية التحقق من شهادات توقيع الكود من DigiCert و GoGetSSL

عملية DigiCert لشهادات CS و EV CS، بما في ذلك النقطة التي تُعطّل أغلب الطلبات: يجب إتمام أمرين منفصلين، التحقق من المؤسسة لأغراض توقيع الكود، وموافقة جهة اتصال مُتحقَّق منها ومحددة لهذا النوع من الشهادات على الطلب، ويبقى الطلب معلّقاً حتى يتم كلا الأمرين. يغطي التحقق من المؤسسة والعنوان والهاتف، ومكالمة التأكيد، والمسار الفردي للمطورين بدون شركة مسجّلة، وما ينبغي فعله عندما يتوقف الطلب.

المرحلة 4: نقل الشهادة إلى عتادك

بعد نجاح التحقق، تُصدَر الشهادة. ما يحدث بعد ذلك يعتمد على طريقة التسليم التي اخترتها في المرحلة 1. فإما يصلك رمز بالبريد يحمل المفتاح والشهادة عليه مسبقاً، أو تستلم ملف شهادة لاستيراده إلى الجهاز الذي أنشأ طلب CSR لديك.

كيفية إعداد شهادة توقيع الكود EV على رمز مُرسَل

المسار الخاص برمز ترسله جهة إصدار الشهادات إليك، وهي الطريقة المعتادة لتسليم طلبات EV. يغطي تثبيت SafeNet Authentication Client، والترتيب الذي يجب أن يتصل بموجبه العميل والرمز، وتغيير كلمة مرور الرمز الأولية التي أرسلتها جهة إصدار الشهادات إليك بالبريد الإلكتروني، والتأكد من أن الشهادة ظاهرة لـ Windows، وإيجاد بصمة الإصبع (thumbprint) التي ستحتاجها أداة التوقيع الخاصة بك. اقرأ قسم القفل قبل كتابة كلمة المرور: يُقفَل الرمز بعد عدد قليل من المحاولات الخاطئة، وكلمة مرور المسؤول التي قد تزيل هذا القفل تبقى بحوزة جهة إصدار الشهادات.

تثبيت شهادة توقيع الكود على YubiKey 5 FIPS

استيراد الشهادة الصادرة إلى فتحة YubiKey التي أنتج زوج مفتاحها طلب CSR الخاص بك، عبر ykman أو Yubico Authenticator، بالإضافة إلى كيفية التحقق من النتيجة وما ينبغي فعله عندما ترسل جهة إصدار الشهادات ملف PKCS#7 لا تستطيع الأداة قراءته. كما يوضّح أمرين تُخطئ فيهما الدلائل الأقدم: أي بيانات اعتماد يطلبها الاستيراد فعلياً، وأين يجب أن تكون الشهادة الوسيطة من Sectigo فعلياً حتى تتسلسل توقيعاتك بشكل صحيح.

المرحلة 5: توقيع الكود والتحقق منه

المرحلة الأخيرة هي التي ستكررها مع كل إصدار جديد، فمن المفيد ضبط الأمر الصحيح مرة واحدة وبرمجته آلياً.

كيفية توقيع ملف EXE باستخدام شهادة توقيع الكود

إيجاد SignTool في Windows SDK دون التخمين برقم إصدار، وأمر التوقيع باستخدام خلاصة SHA-256 وختم توقيت زمني (timestamp) وفق RFC 3161، واختيار الشهادة الصحيحة على جهاز يحتوي عدة شهادات، وفحص التحقق المعياري وسبب فشله دون المفتاح الصحيح، وكيفية التوقيع من مفتاح سحابي أو من خط أنابيب CI/CD. يغطي أيضاً الخيار الذي لا يتطلب رمزاً والذي توصي به Microsoft حالياً للتوزيع خارج Store، وما يفعله التوقيع وما لا يفعله بخصوص SmartScreen.

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

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

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

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