كيفية التقديم واستخدام شهادة توقيع الشيفرة في ServBay
نظرة عامة
يعد توقيع الشيفرة خطوة أساسية لبناء الثقة وضمان نزاهة البرمجيات أثناء تطويرها وتوزيعها. من خلال التوقيع الرقمي للشيفرة، يمكن للمطورين إثبات مصدر البرمجيات والتأكد من عدم تعديل الشيفرة منذ التوقيع عليها.
يتيح ServBay للمطورين التقديم والحصول على شهادات توقيع شيفرة صادرة عن مرجع التصديق الداخلي (CA) بسهولة في بيئتهم المحلية. هذه الشهادات مناسبة بشكل خاص لـ:
- توقيع البرمجيات أثناء مراحل التطوير أو الاختبار المحلي لمحاكاة عمليات التوقيع الحقيقية.
- توقيع السكربتات، الأدوات أو التطبيقات الداخلية للتحقق من مصدرها ونزاهتها ضمن فريق العمل أو بيئات موثوقة.
- التعلم والتدرب على سير عمل توقيع الشيفرة بالكامل دون الحاجة لشراء شهادات توقيع شيفرة تجارية باهظة الثمن.
تنويه هام: شهادات توقيع الشيفرة الصادرة عن مرجع التصديق الداخلي لـ ServBay ليست صادرة عن جهات إصدار شهادات معترف بها عمومًا (مثل Let's Encrypt أو Comodo). هذه الشهادات لن يتم الوثوق بها افتراضياً من أنظمة التشغيل أو المتصفحات العامة. لذلك، فهي غير مناسبة للاستخدام في التطبيقات أو البرمجيات التي ستوزع على المستخدمين النهائيين، أو منشورة في متاجر التطبيقات، أو التي تتطلب اجتياز اختبارات الأمان الخاصة بأنظمة التشغيل (مثل تحذير Gatekeeper في macOS للمطورين غير المعروفين). وهي مخصصة بشكل أساسي لتوقيع الشيفرة ضمن التطوير المحلي أو بيئات اختبارية أو مغلقة.
مقدمة حول شهادة توقيع الشيفرة
شهادة توقيع الشيفرة هي شهادة رقمية تُستخدم لتوقيع الملفات التنفيذية والسكريبتات والمكتبات البرمجية بطريقة رقمية. وتكمن أهميتها في الآتي:
- التحقق من هوية الناشر: تتضمن الشهادة معلومات الناشر، ويمكن للتوقيع الرقمي إثبات أن البرمجيات جاءت فعلاً من المطور أو الشركة المذكورة في الشهادة.
- ضمان سلامة الشيفرة: أثناء التوقيع، يُنشئ التوقيع قيمة تجزئة (Hash) من محتوى الشيفرة ويتم تشفيرها بالمفتاح الخاص. عند التحقق، يُعاد حساب التجزئة وفك تشفير توقيع الشيفرة بالمفتاح العام للمقارنة. أي تعديل على الشيفرة سيؤدي إلى اختلاف التجزئة وفشل التحقق من التوقيع، ما يعني أن الشيفرة قد عُدلت.
- تعزيز ثقة المستخدم: عادةً ما تصدر أنظمة التشغيل أو برامج الحماية تحذيرات للبرمجيات غير الموقعة أو ذات المصدر غير المعروف. استخدام شهادة توقيع يزيل هذه التحذيرات (في البيئات الموثوقة، أو عند إضافة مرجع التصديق الخاص بـ ServBay يدوياً إلى سلسلة الثقة)، ويزيد من ثقة المستخدمين بالتثبيت والاستخدام.
- الحماية من البرمجيات الخبيثة: بفضل توقيع الشيفرة، يصبح من الأسهل على المستخدمين التمييز بين البرمجيات الشرعية وتلك التي تزعم زوراً بأنها شرعية، مما يساعد في الحد من انتشار البرمجيات الخبيثة.
كيفية التقديم على شهادة توقيع الشيفرة عبر ServBay
يبسط ServBay عملية الحصول على شهادة توقيع الشيفرة في بيئة التطوير المحلية.
افتح لوحة إدارة شهادات SSL: من الشريط الجانبي لتطبيق ServBay، انقر على قائمة "SSL Certificates".
بدء طلب شهادة جديدة: في صفحة إدارة شهادات SSL، انقر على زر الإضافة "+" في الزاوية العلوية اليمنى.
ملء معلومات الشهادة: في صفحة "Request Certificate" (طلب الشهادة)، قم بتعبئة البيانات التالية:
- Common Name (الاسم العام): أدخل اسم مؤسستك أو اسمك الشخصي (مثال:
ServBay, LLC
أوServBay Demo Developer
). - Usage Purpose (الغرض): اختر "Code Signing" (توقيع الشيفرة) كغرض الشهادة.
- Request Method (طريقة الطلب): اختر "ServBay CA" لاستخدام خاصية الإصدار المدمجة بـ ServBay.
- Issuer (المُصدر): اختر مرجع التصديق الداخلي (CA) الذي سيصدر الشهادة عادة
ServBay User CA
. - Algorithm (الخوارزمية): اختر خوارزمية توليد المفاتيح المناسبة مثل
ECC
(التشفير بالمنحنيات البيضاوية) أوRSA
(ريفيست-شامير-أدلمن). يوفر ECC أماناً أعلى بأطوال مفاتيح أقصر لنفس مستوى الأمان. - Key Length (طول المفتاح): اختر طول المفتاح المناسب للخوارزمية المختارة. لـ ECC مثلًا
384
، ولـ RSA مثلًا2048
أو4096
—كلما طال المفتاح زادت الحماية، مع احتمال بطء طفيف في الأداء. - Password (كلمة المرور): هام جدًا! اختر كلمة مرور قوية لحماية المفتاح الخاص لشهادتك. ستحتاج إلى كلمة المرور هذه عند تصدير الشهادة (
.p12
) وعند استخدامها مع أدوات توقيع الشيفرة. احتفظ بكلمة المرور، فلن يتمكن ServBay من استعادتها لك إذا فقدتها. يمكنك اختيار كلمة مرور مخصصة. (ملاحظة:ServBay.dev
الظاهر في الصور هو كلمة مرور تجريبية فقط، لا تستخدمها فعلياً—اختر كلمة مرور آمنة خاصة بك!)
مثال توضيحي – يرجى تعبئة بياناتك الحقيقية حسب الحاجة
- Common Name (الاسم العام): أدخل اسم مؤسستك أو اسمك الشخصي (مثال:
إرسال طلب الشهادة: بعد التحقق من جميع البيانات، انقر زر "Request" في أسفل الصفحة. سيصدر ServBay تلقائياً شهادة توقيع الشيفرة باستخدام ServBay User CA المختار.
تصدير الشهادة واستخدامها
عند حيازة شهادة توقيع الشيفرة، ينبغي تصديرها بتنسيق قياسي لتتمكن من استخدامها مع أدوات التوقيع المختلفة. يكون الملف عادةً بتنسيق .p12
.
ادخل إلى لوحة إدارة شهادات SSL: من الشريط الجانبي في ServBay، انقر على "SSL Certificates".
ابحث عن شهادة توقيع الشيفرة الخاصة بك: استعرض قائمة الشهادات وحدد شهادة "Code Signing" التي تقدمت بها من قبل.
اضغط على زر التصدير: انقر على أيقونة التصدير الموجودة بجانب الشهادة (عادة سهم يشير إلى اليمين).
حدد مجلد الحفظ وكلمة المرور: في نافذة التصدير المنبثقة، اختر المجلد المحلي المناسب لحفظ الملف. تنسيق التصدير عادةً
.p12
(PKCS#12). هذا الملف يتضمن الشهادة ومفتاحها الخاص، ويتم حمايته بكلمة المرور التي عينتها عند التقديم. يجب إدخال كلمة المرور لإكمال التصدير.استخدام الشهادة في أدوات توقيع الشيفرة: قم باستيراد ملف
.p12
إلى أداة توقيعه للشفرة المناسبة. تختلف الأدوات حسب النظام والبيئة التطويرية:- macOS: استخدم أداة الأوامر
codesign
. قد تحتاج أولاً إلى استيراد ملف.p12
إلى سلسلة المفاتيح (Keychain Access). - Windows: استخدم أداة
signtool.exe
المتوفرة مع Windows SDK. غالبًا ستحتاج لاستيراد الملف إلى مستودع الشهادات الخاص بـ Windows. - أنظمة وأدوات أخرى: بحسب بيئتك أو تقنية البناء (مثل
jarsigner
لجافا، أوSignTool
لـ .NET، أو أداة توقيع الطرف الثالث لـ Go)، تحقق من الطريقة المناسبة للاستيراد والتوقيع، وغالبًا ما يتطلب مسار ملف.p12
وكلمة المرور الخاصة بالمفتاح.
- macOS: استخدم أداة الأوامر
بعد استيراد الشهادة، يمكنك استخدامها لتوقيع الشيفرات، التطبيقات، أو حتى برامج التشغيل لديك رقمياً.
مثال توقيع الشيفرة باستخدام الشهادة على (macOS)
يوضح المثال التالي كيفية استخدام أداة codesign
على macOS مع شهادة .p12
التي تم تصديرها من ServBay لتوقيع ملف تنفيذي بسيط والتحقق منه.
نفترض أنك قمت بالفعل باستيراد ملف .p12
من ServBay إلى سلسلة مفاتيح macOS، وأدخلت كلمة المرور بشكل صحيح.
bash
# 1. أنشئ ملف مصدر لغة C بسيط للاختبار
# احفظ الكود التالي في ملف باسم test.c
cat <<EOF > test.c
#include <stdio.h>
int main() {
printf("Hello, ServBay Code Signing!\n");
return 0;
}
EOF
# 2. استخدم gcc لترجمة الملف إلى برنامج تنفيذي
# -o /tmp/test لتحديد اسم الملف الناتج
gcc test.c -o /tmp/test
echo "تمت الترجمة بنجاح، تم إنشاء /tmp/test"
# 3. البحث عن هوية الشهادة المناسبة لتوقيع الشيفرة
# -v لعرض معلومات مفصلة
# -p codesigning لتصفية شهادات التوقيع فقط
# لاحظ اسم الشهادة (Common Name) أو قيمة التجزئة الخاصة بها (Hash)
security find-identity -v -p codesigning
# مثال على مخرجات الأداة:
# 1) ABCDEF1234567890ABCDEF1234567890ABCDEF12 "Apple Development: Your Name (XYZ123)"
# 2) 99C183BC3796067FAFBA6F232D1C3C3425DAABDA "ServBay Demo Developer"
# 2 valid identities found
# سجل اسم الشهادة أو قيمة التجزئة المتعلقة بشهادتك من ServBay
# 4. استخدم الهوية التي عثرت عليها لتوقيع الملف التنفيذي
# -f لإجبار التوقيع (استبدال أي توقيع سابق)
# -s لتحديد الهوية، يمكنك إدخال اسم الشهادة أو قيمة التجزئة إذا كانت فريدة
# --timestamp لإضافة طابع زمني (اختياري لكنه موصى به)
# /tmp/test هو مسار الملف المراد توقيعه
codesign -f -s "ServBay Demo Developer" --timestamp /tmp/test
# أو استخدم قيمة التجزئة:
# codesign -f -s "99C183BC3796067FAFBA6F232D1C3C3425DAABDA" --timestamp /tmp/test
echo "/tmp/test تم توقيعه بشهادة توقيع الشيفرة"
# 5. تحقق من صحة التوقيع
# -dvvv لعرض معلومات مفصلة جدًا
codesign -dvvv /tmp/test
# تحقق من وجود الاسم في حقل "Authority" ومعلومات سلسلة ServBay CA
# تحقق من وجود "Signature size" و"CDHash" إلخ للدلالة على أن الملف موقع
# تأكد من وجود "Timestamp"
# مثال على جزء من مخرجات التحقق:
# Authority=ServBay Demo Developer
# Authority=ServBay User CA - ECC Code Signing
# Authority=ServBay Public CA - ECC Root
# Timestamp=Nov 7, 2024 at 18:26:48 (تاريخ كمثال)
# 6. احرص على تجربة تغيير الملف وكسر التوقيع
# أضف بيانات عشوائية للملف لتغيير التجزئة
echo "abcde" >> /tmp/test
echo "تم تعديل محتوى /tmp/test"
# 7. تحقق مرة أخرى من صحة التوقيع
# من المفترض أن يفشل التحقق الآن
codesign -dvvv /tmp/test
# مثال متوقع على المخرجات:
# /tmp/test: code object is not signed at all
# أو رسالة خطأ مشابهة لتوضح أن التوقيع فقد أثره بسبب تغيير محتوى الملف.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
ملاحظات:
- وظيفة
security find-identity
هي عرض الشهادات الموثوقة في Keychain والقابلة للاستخدام لتوقيع الشيفرة بالذات. - أمر
codesign -f -s "اسمك"
يوقع الملف بالهوية التي اخترتها، مع خيار الطابع الزمني--timestamp
لإرفاق توقيعك بوقت مصدق عليه—مفيد في إثبات صحة التوقيع حتى بعد انتهاء صلاحية الشهادة ذاتها. - أمر
codesign -dvvv
يعرض تفاصيل تحقق التوقيع، ويشمل كامل سلسلة الثقة وسياسة الشهادة والتجزئة. - تعديل الملف والتحقق من التوقيع مرة أخرى يبرهن عملياً على قيمة توقيع الشيفرة في كشف ومحاربة أي عبث أو تعديل غير مصرح به في الملفات التنفيذية.
تجديد الشهادة
شهادات توقيع الشيفرة التي يصدرها ServBay لها فترة صلاحية (عادة 800 يوم). يمكنك تجديد الشهادة عبر لوحة إدارة شهادات SSL قبل انتهاء صلاحيتها.
- ادخل إلى لوحة إدارة شهادات SSL.
- حدد شهادة توقيع الشيفرة التي ترغب في تجديدها.
- انقر على زر التجديد: اضغط على رمز إعادة التدوير (عادةً على شكل سهم دائري) بجانب الشهادة.
- تأكيد التجديد: بالضغط على زر التجديد، يُصدر ServBay شهادة جديدة تبدأ فترة صلاحيتها من التاريخ الحالي ولمدة 800 يوم.
حذف الشهادة
إذا لم تعد بحاجة لشهادة توقيع الشيفرة، يمكنك حذفها من ServBay.
- ادخل إلى لوحة إدارة شهادات SSL.
- حدد الشهادة التي تريد حذفها.
- انقر على زر الحذف: اضغط على أيقونة سلة المهملات بجانب اسم الشهادة.
- تأكيد الحذف: في نافذة التأكيد، اختر "Delete" وأكد الحذف مرة أخرى. انتبه: لا يمكن استرجاع الشهادة بعد الحذف.
الأسئلة الشائعة (FAQ)
س: هل شهادات توقيع الشيفرة التي يصدرها ServBay مجانية؟
ج: نعم، فهي جزء من وظائف ServBay المدمجة عبر مرجع التصديق الداخلي ولا تتطلب رسومًا إضافية.
س: هل يمكنني استخدام شهادة ServBay لتوقيع برمجياتي التجارية وتوزيعها على المستخدمين؟
ج: لا. شهادات ServBay مصدرة عبر CA داخلي وغير معترف بها افتراضيًا من أنظمة التشغيل العامة أو متاجر البرمجيات. هي مخصصة للتطوير، الاختبار، أو بيئات مغلقة فقط. تحتاج شهادات توقيع الشيفرة التجارية للبرمجيات العامة إلى شرائها من جهات تصديق موثوقة.
س: ماذا أفعل إذا نسيت كلمة مرور ملف التصدير .p12
؟
ج: لا يحتفظ ServBay بكلمة مرور المفتاح الخاص. إذا فقدتها، لن تتمكن من تصدير أو استعمال المفتاح الخاص المرتبط بالشهادة. عليك حذف الشهادة والتقديم على واحدة جديدة.
س: هل يمكنني إضافة ServBay User CA إلى تخزين الثقة في نظام التشغيل الخاص بي؟
ج: نعم، يمكن ذلك عادةً عبر تصدير شهادة ServBay User CA واستيرادها يدويًا إلى مستودع الثقة في النظام أو المتصفح.
خلاصة
يمنحك ServBay مجالاً ملائماً لتجربة توقيع الشيفرة على البرمجيات داخل بيئة التطوير المحلية أو التوقيع الداخلي للأدوات. باتباع خطوات هذا الدليل، أصبح بإمكانك الآن التقديم على شهادة توقيع الشيفرة، تصديرها، واستخدامها بسهولة داخل ServBay. تذكر أن هدف هذه الشهادات مقتصر على التطوير والتجربة، ولا تصلح لعمليات النشر العامة التي تتطلب جهات تصديق موثوقة.
إذا واجهت أي مشكلة أثناء عملية التقديم أو الاستخدام، ننصح بالرجوع إلى المستندات الرسمية لـ ServBay أو طلب العون من مجتمع المستخدمين.