مولد الشهادات الذاتية التوقيع
قم بإنشاء شهادات SSL/TLS ذاتية التوقيع للتطوير المحلي والاختبار. أنشئ شهادات X.509 مع قابلية تخصيص الصلاحية وحجم المفتاح وتفاصيل الموضوع.
الإدخال
الإخراج
ملف القراءة
ما هو الشهادة الذاتية التوقيع؟
الشهادة الذاتية التوقيع هي شهادة رقمية موقعة من قبل منشئها بدلاً من سلطة شهادات موثوقة (CA). على عكس الشهادات الصادرة من قبل سلطات الشهادات مثل Let's Encrypt أو DigiCert أو Comodo، فإن الشهادات الذاتية التوقيع لا يتم التعرف عليها تلقائيًا من قبل المتصفحات وأنظمة التشغيل.
تستخدم الشهادات الرقمية التشفير بالمفتاح العام لإنشاء اتصالات آمنة ومشفرة بين العملاء والخوادم. وهي تحتوي على معلومات حول حامل الشهادة (الموضوع)، والجهة المصدرة، وفترة الصلاحية، ومفتاح عام. عندما يقدم الخادم شهادة، يتحقق العميل منها مقابل الشهادات الجذرية الموثوقة للتأكد من أن الاتصال آمن وموثوق.
كيف يعمل إنشاء الشهادة؟
يتضمن عملية إنشاء الشهادة عدة خطوات تشفيرية:
إنشاء زوج المفاتيح: يتم إنشاء زوج مفاتيح RSA (مفتاح عام وخاص). يجب إبقاء المفتاح الخاص سريًا، بينما يتم تضمين المفتاح العام في الشهادة.
إنشاء الشهادة: يتم إنشاء هيكل شهادة يحتوي على معلومات الموضوع (الاسم الشائع، المنظمة، الدولة، إلخ)، وتواريخ الصلاحية، والمفتاح العام.
التوقيع الذاتي: يتم توقيع الشهادة رقميًا باستخدام المفتاح الخاص وخوارزمية التجزئة (SHA-256 أو SHA-384 أو SHA-512). يسمح هذا التوقيع لأي شخص يمتلك المفتاح العام بالتحقق من سلامة الشهادة.
ترميز PEM: يتم ترميز الشهادة والمفتاح الخاص بتنسيق PEM (البريد المعزز للخصوصية)، وهو تنسيق مدعوم على نطاق واسع من قبل الخوادم والتطبيقات.
وصف الأداة
هذه الأداة تولد شهادات X.509 ذاتية التوقيع والمفاتيح الخاصة المقابلة مباشرة في متصفحك. لا يتم إرسال أي بيانات إلى أي خادم - تتم جميع العمليات التشفيرية محليًا باستخدام مكتبة node-forge. يمكنك تخصيص حقول الموضوع للشهادة، وحجم المفتاح، وفترة الصلاحية، وخوارزمية التوقيع لتناسب متطلباتك المحددة.
أمثلة
شهادة localhost الأساسية:
- الاسم الشائع:
localhost - حجم المفتاح: 2048 بت
- الصلاحية: سنة واحدة
- الخوارزمية: SHA-256
شهادة خادم التطوير:
- الاسم الشائع:
dev.myapp.local - المنظمة:
شركتي - الدولة:
الولايات المتحدة - حجم المفتاح: 2048 بت
- الصلاحية: سنتان
تنسيق الإخراج (الشهادة):
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAJC1HiIAZAiUMA0GCSqGSIb3QasEBBUAMEUxCzAJBgNV
...
-----END CERTIFICATE-----تنسيق الإخراج (المفتاح الخاص):
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA0Z3VS5JJcds3xfn/ygWyF8PbnGy...
...
-----END RSA PRIVATE KEY-----الميزات
- التوليد في المتصفح: جميع العمليات التشفيرية تعمل محليًا في متصفحك دون اتصال بالخادم
- أحجام مفاتيح قابلة للتكوين: اختر من 1024، 2048، 3072، أو 4096 بت من مفاتيح RSA لمستويات أمان مختلفة
- خوارزميات توقيع متعددة: دعم لخوارزميات التجزئة SHA-256 و SHA-384 و SHA-512
- حقول X.509 كاملة: تعيين الاسم الشائع، والمنظمة، والوحدة التنظيمية، والدولة، والولاية، والموقع
- فترات صلاحية مرنة: توليد شهادات صالحة من 30 يومًا إلى 10 سنوات
شرح حقول الشهادة
| الحقل | الوصف | مثال |
|---|---|---|
| الاسم الشائع (CN) | اسم النطاق أو المضيف الذي الشهادة له | localhost، example.com |
| المنظمة (O) | الاسم القانوني للمنظمة | شركة أكمي |
| الوحدة التنظيمية (OU) | القسم أو الإدارة | قسم تكنولوجيا المعلومات |
| الدولة (C) | رمز الدولة من شقين | US، GB، DE |
| الولاية/المقاطعة (ST) | اسم الولاية أو المقاطعة | كاليفورنيا |
| الموقع (L) | اسم المدينة أو البلدة | سان فرانسيسكو |
توصيات حجم المفتاح
- 1024 بت: غير موصى به للإنتاج؛ مناسب للاختبار فقط
- 2048 بت: مستوى الأمان القياسي؛ موصى به لمعظم الحالات
- 3072 بت: أمان معزز؛ جيد لبيئات التطوير الحساسة
- 4096 بت: الحد الأقصى من الأمان؛ توليد أبطأ لكن حماية قصوى
حالات الاستخدام
خوادم التطوير المحلية: إنشاء شهادات HTTPS للمضيف المحلي لاختبار الميزات الآمنة مثل Service Workers أو واجهة برمجة تطبيقات الموقع الجغرافي أو WebRTC التي تتطلب سياقات آمنة
بيئات الاختبار الداخلية: توليد شهادات لخوادم المرحلة والبيئات التي لا تحتاج إلى شهادات موقعة من سلطة شهادات
Docker والتطبيقات المحاطة: تأمين التواصل بين الحاويات في التطوير أو الشبكات المعزولة
تطوير واختبار API: تمكين HTTPS لخوادم API المحلية لاختبار تدفقات OAuth والخطافات الآمنة وتثبيت الشهادات
التعلم والتعليم: فهم كيفية عمل شهادات SSL/TLS من خلال توليد وفحص شهاداتك الخاصة
تعليمات التثبيت
بعد توليد شهادتك، ستحتاج إلى تكوين الخادم والتأكد من الثقة بالشهادة:
لـ Node.js/Express:
const https = require("https");
const fs = require("fs");
const options = {
key: fs.readFileSync("private-key.pem"),
cert: fs.readFileSync("certificate.pem"),
};
https.createServer(options, app).listen(443);لـ nginx:
server {
listen 443 ssl;
ssl_certificate /path/to/certificate.pem;
ssl_certificate_key /path/to/private-key.pem;
}الثقة بالشهادة (macOS):
- افتح Keychain Access
- استورد ملف certificate.pem
- انقر مرتين على الشهادة وعيّن "الثقة" إلى "الثقة دائمًا"
الثقة بالشهادة (Windows):
- انقر نقرًا مزدوجًا على ملف certificate.pem
- انقر على "تثبيت الشهادة"
- اختر "الكمبيوتر المحلي" وضعه في "سلطات الشهادات الجذرية الموثوقة"
اعتبارات الأمان
- لا تستخدم أبدًا الشهادات ذاتية التوقيع في الإنتاج للمواقع المتاحة للعامة
- حافظ على سرية مفتاحك الخاص - أي شخص لديه وصول يمكنه انتحال هوية الخادم الخاص بك
- ستظهر الشهادات ذاتية التوقيع تحذيرات المتصفح لأنها غير موثوقة بشكل افتراضي
- استخدم فترات صلاحية قصيرة للتطوير لتشجيع تدوير الشهادات
- فكر في استخدام أدوات مثل mkcert للتطوير إذا كنت بحاجة إلى شهادات محلية موثوقة