إن إنشاء شهادات SSL يمكن أن يكون مهمة صعبة، ومليئة بالإحباط والحزن. ولكن لا يجب أن تكون الأمور بهذه الصعوبة! إذا كنت تستخدم ويندوز 10 و OpenSSL بالإضافة إلى قليل من المساعدة من هذا البرنامج التعليمي، فستكون على الطريق الصحيح.
في هذا المقال، ستتعلم كيفية تثبيت OpenSSL على ويندوز 10. بمجرد تثبيته، ستتمكن من إنشاء شهادات SSL وإصلاحها وتشخيصها وتحويلها بين التنسيقات.
لنبدأ في استخدام OpenSSL على ويندوز 10 باستخدام PowerShell!
ذات الصلة: إدارة الشهادات باستخدام Windows Certificate Manager و PowerShell
المتطلبات المسبقة
في هذا المقال، ستتعلم باستخدام نهج عملي. على الرغم من أن OpenSSL هو تطبيق مصمم تاريخيًا لنظام تشغيل Linux، يمكنك استخدامه مع نظام تشغيل Windows أيضًا.
- A Windows system with Local Administrator rights – The tutorial will be using Windows 10
- PowerShell 5.1 لنظام التشغيل Windows (يأتي مع نظام التشغيل) أو PowerShell 7
- Chocolatey – إدارة حزم لنظام التشغيل Windows مثبتة.
- PowerShell ISE، Visual Studio Code أو أي محرر نصي تفضله
تم التقاط جميع لقطات الشاشة في هذا الدليل من نسخة Windows 10 الإصدار 1909 و PowerShell 7.
تثبيت OpenSSL على ويندوز 10 باستخدام PowerShell و Chocolatey
بفرض أنك قمت بتثبيت “Chocolatey” باستخدام “تعليمات التثبيت” الخاصة به، فإن مهمتك الأولى هي تثبيت OpenSSL على نظام Windows 10. للقيام بذلك، قم بفتح نافذة PowerShell وتشغيل الأمر “choco install OpenSSL.Light” كما هو مبين أدناه.

هذا كل شيء! لقد قمت الآن بتثبيت OpenSSL باستخدام PowerShell.
إعداد دليل العمل
سيتم إنشاء بعض الشهادات في هذا البرنامج التعليمي لكي تتعلم منها. للتأكد من أن جميع العمليات التي تقوم بها هنا مقتصرة على مجلد واحد يمكنك تنظيفه لاحقًا، قم بإنشاء مجلد.
سيتم تخزين جميع الشهادات والملفات ذات الصلة في مجلد “C:\certs” في هذا البرنامج التعليمي. يمكنك إنشاء المجلد باستخدام PowerShell عن طريق تشغيل الأمر التالي.
حان الوقت الآن لتكوين OpenSSL.
تكوين OpenSSL
بشكل افتراضي، لا يأتي OpenSSL مع ملف تكوين على نظام Windows 10. هذا مقصود لأنه هناك الكثير من خيارات التكوين التي يمكنك تخصيصها. لأغراض هذا الدليل، ستستخدم تكوينًا نموذجيًا يمكنك تخصيصه لاحقًا وفقًا لمتطلبات الأمان الخاصة بك.
افتح نافذة PowerShell وقم بتشغيل الأمر التالي. يقوم هذا الأمر بتنزيل ملف تكوين نموذجي من MIT ويحفظه بصيغة “openssl.cnf” في دليل العمل الحالي.
يمكنك الآن فتح ملف “openssl.cnf” ويجب أن ترى شيئًا يشبه ما يلي.

سيعمل التكوين المحمل كما هو في الوقت الحالي. لا تستخدم الإعدادات الافتراضية في بيئة الإنتاج!
تحديث متغيرات بيئة ملف تعريف PowerShell
لجعل الأمور تسير بسلاسة، يجب عليك تعديل ملف تعريف PowerShell الخاص بك في Windows 10. يتيح لك إعداد بعض المتغيرات البيئية الانتقال بسهولة بين إصدارات مختلفة من OpenSSL التي يمكن أن تكون قد قمت بتثبيتها.
I suggest adding two environment variables to your PowerShell profile called path
and OPENSSL_CONF
. You will update the PATH
environment variable to ensure you can run the openssl binary in any location while on the command line.
فيما يلي طريقة لإنشاء ملف تعريف PowerShell إذا لم يكن لديك بالفعل واحد. يقوم هذا الأمر بإضافة مسار البرنامج الثنائي لـ OpenSSL إلى مسار PATH
الخاص بك وتعيين مسار ملف التكوين إلى OPENSSL_CONF
.
لاستخدام المتغيرات البيئية، أعد تحميل الملف التعريف بكتابة . $profile
أو مجرد إغلاق PowerShell وفتحه مرة أخرى.
الآن يمكنك استدعاء برنامج OpenSSL الثنائي openssl بسهولة أينما كنت في PowerShell كما هو موضح أدناه.

استخدام OpenSSL على Windows 10 لإنشاء CSR ومفتاح خاص
قبل أن تتمكن من إنشاء شهادة SSL ، يجب أن تقوم بإنشاء طلب توقيع الشهادة (CSR) . يعد CSR ملفًا مشفرًا يوفر لك طريقة لمشاركة المفتاح العام الخاص بك مع سلطة إصدار الشهادة (CA). يحتوي هذا الملف على معلومات تحدد الهوية وخوارزمية التوقيع والتوقيع الرقمي. دعنا نقوم بإنشاء أول CSR ومفتاح خاص لك.
ذات صلة: دليلك لشهادات X509 للبشر
لإنشاء CSR ، قم بتشغيل الأمر أدناه. ستطلب OpenSSL منك بعد ذلك إدخال بعض المعلومات التعريفية كما هو موضح في العرض التوضيحي التالي.

بمجرد الانتهاء ، ستحصل على CSR صالح ومفتاح خاص يمكن استخدامه لإصدار شهادة SSL لك.
يمكن تعديل إعدادات الملف التكوين الافتراضية لتبسيط هذه العملية إذا لم تكن ترغب في إدخال البيانات في كل مرة تقوم فيها بإنشاء CSR.
يمكنك قراءة المزيد عن خيارات CSR المتاحة و عرض أمثلة للتكوينات في صفحات الرجل. كما يحتوي OpenSSL على مستودع نشط في مستودع GitHub مع أمثلة أيضًا.
إنشاء أزواج مفاتيح RSA
يمكنك أيضًا إنشاء أزواج مفاتيح RSA (عام / خاص) باستخدام OpenSSL. للقيام بذلك ، أنشئ أولاً مفتاحًا خاصًا باستخدام الأمر الفرعي genrsa
كما هو موضح أدناه.
عند تشغيل الأمر أدناه ، ستقوم OpenSSL على نظام Windows 10 بتوليد مفتاح خاص RSA بطول 2048 بت. يتم إنشاء هذا المفتاح تقريبًا على الفور على الأجهزة الحديثة. يتم إخراج المفتاح الناتج في دليل العمل
بعد ذلك ، قم بتوليد مفتاح عام باستخدام المفتاح الخاص الذي تم إنشاؤه للتو باستخدام الفرع rsa
. ستنشئ الجملة التالية مفتاحًا عامًا يسمى rsa.public في دليل العمل من المفتاح الخاص rsa.private.
توليد شهادة ذاتية
في بعض الأحيان قد تحتاج إلى إنشاء شهادة ذاتية. الشهادات الذاتية ملائمة للاستخدام في المختبرات ولكنها ليست ممارسة آمنة للاستخدام في بيئة إنتاجية.
دعنا نقوم بإنشاء شهادة ذاتية قبل المتابعة إلى المهمة التالية. للقيام بذلك ، أدخل الأمر أدناه لإنشاء شهادة SSL X509. ستستخدم هذه الشهادة تشفير SHA256 وستكون صالحة لمدة 365 يومًا باستخدام طول مفتاح RSA 2048 بت. ستتم حفظ الشهادة في دليل العمل.
أنت الآن جاهز لاستيراد الشهادة في متصفح أو خادم.
التحقق من CSRs والشهادات والمفاتيح باستخدام OpenSSL
التحقق من المعلومات في CSR، المفتاح الخاص، الشهادة أو PKCS#12 يمكن أن يوفر لك الوقت في حل مشاكل أخطاء SSL. في بعض الأحيان يمكن أن يتم استخدام مفتاح خاطئ لإنشاء شهادة، على سبيل المثال. قد يكون لديك معلومات تعريفية خاطئة في الشهادة.
لنبدأ بفحص CSR باستخدام الأمر req
وبعض المعلمات:

يجب أن تتطابق التفاصيل مثل اسم البلد، واسم المؤسسة، وعنوان البريد الإلكتروني الذي قمت بإدخاله عند إنشاء CSR في بداية هذا الدليل تمامًا.
يمكنك أيضًا فحص الشهادة باستخدام الأمر الفرعي x509
مع بعض المعلمات:

تحويل الشهادات باستخدام OpenSSL
هناك مناسبات يتطلب فيها التطبيق استخدام تنسيق شهادة معين. يمكن أن تواجه هذه المشكلة مع تطبيق يسمى HAproxy، على سبيل المثال، الذي يتطلب شهادة PEM عندما يكون لديك شهادة بتنسيق DER (.crt .cer .der).
لتوضيح عملية تحويل الشهادة، دعنا نقوم بتحويل الشهادة الموقعة ذاتيًا التي تم إنشاؤها سابقًا بتنسيق DER (certificate.crt) إلى PEM. استخدم الشيفرة في مقطع الشيفرة التالي للقيام بذلك.
يستخدم الأمر أدناه الأمر الفرعي x509
مع المعلمة -inform
التي يجب أن تتطابق مع تنسيق الملف -in
تليها تنسيق -out
.
يمكنك أيضًا عكس الترتيب إذا أردت تحويل التنسيق من PEM إلى DER كما هو موضح أدناه.
وأخيرًا ، يمكنك تحويل PKCS#12 إلى PEM و PEM إلى PKCS#12. هذا هو نوع ملف يحتوي على المفاتيح الخاصة والشهادات. لتحويله إلى تنسيق PEM ، استخدم الأمر الفرعي pkcs12
.
يمكنك أيضًا تحويل شهادة PEM ومفتاح خاص إلى تنسيق PKCS#12 باستخدام -export
مع بعض الخيارات الإضافية. أدناه ، يتم تصدير شهادة بتنسيق PKCS#12 باستخدام المفتاح الخاص الخاص بك باستخدام SomeCertificate.crt
كمصدر الإدخال. باستخدام قيمة الخيار -certfile
MyCACert.crt
، يمكنك التحقق من صحة SomeCertificate.crt
.
استكشاف الأخطاء وإصلاحها وتصحيحها
الآن بعد أن يمكنك إنشاء وتحويل CSR’s والشهادات وأزواج المفاتيح ، حان الوقت لمعرفة كيفية استكشاف الأخطاء وإصلاحها وتصحيحها. يأتي OpenSSL مع أوامر تجعل من السهل استكشاف المشاكل.
يتيح لك OpenSSL أيضًا التحقق من صحة الشهادات من حيث سلامة الملف واختبار التلف المحتمل للبيانات. باستخدام البصمة MD5 ، يمكنك استخدام أمثلة الكود التالية لاختبار الشهادات والمفاتيح و CSR’s المولدة:
بمجرد الحصول على البصمة الأصلية ، يمكنك مقارنتها مع البصمة الحالية للتحقق من أن الشهادة لم يتم تعديلها أو تلفها.
إليك نموذج لمظهر هذا الكود عند تشغيله في برنامج PowerShell:

ملخص
في هذه المقالة، تعلمت كيفية تثبيت وتكوين OpenSSL على نظام Windows 10، وإنشاء CSR، وزوج مفاتيح، وشهادة SSL. كما تعلمت كيفية التحويل بين تنسيقات الشهادات المختلفة وأجراء بعض عمليات الإصلاح الأساسية باستخدام الأوامر الفرعية المضمنة.