21 أمثلة على OpenSSL لمساعدتك في العالم الحقيقي
إنشاء وإدارة وتحويل شهادات SSL باستخدام OpenSSL
يعد OpenSSL أحد أكثر الأوامر شيوعًا في SSL لإنشاء شهادات SSL وتحويلها وإدارتها.
سيكون هناك العديد من المواقف التي يتعين عليك فيها التعامل مع OpenSSL بطرق مختلفة ، وهنا قمت بإدراجها لك على أنها ورقة غش سهلة الاستخدام.
في هذه المقالة ، سأتحدث عن أوامر OpenSSL المستخدمة بشكل متكرر لمساعدتك في العالم الحقيقي.
بعض الاختصارات المتعلقة بالشهادات.
- SSL – طبقة المقابس الآمنة
- CSR – طلب توقيع الشهادة
- TLS – أمان طبقة النقل
- PEM – البريد المعزز للخصوصية
- DER – قواعد التشفير المميزة
- SHA – خوارزمية تجزئة آمنة
- PKCS – معايير تشفير المفتاح العام
ملحوظة: دورة عملية SSL / TLS سيكون مفيدًا إذا لم تكن على دراية بالشروط.
قم بإنشاء مفتاح خاص جديد وطلب توقيع الشهادة
openssl req -out admingate.org.csr -newkey rsa:2048 -nodes -keyout admingate.org.key
سيقوم الأمر أعلاه بإنشاء ملف CSR وملف مفتاح RSA 2048 بت. إذا كنت تنوي استخدام هذه الشهادة في Apache أو Nginx ، فأنت بحاجة إلى إرسال ملف CSR هذا إلى جهة إصدار الشهادة ، وسوف يمنحك شهادة موقعة في الغالب بتنسيق der أو pem الذي تحتاج إلى تكوينه في خادم الويب Apache أو Nginx .
قم بإنشاء شهادة موقعة ذاتيًا
openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem
سينشئ الأمر أعلاه شهادة موقعة ذاتيًا وملف مفتاح مع 2048 بت RSA. لقد قمت أيضًا بتضمين sha256 لأنه يعتبر الأكثر أمانًا في الوقت الحالي.
نصيحة: بشكل افتراضي ، ستنشئ شهادة موقعة ذاتيًا صالحة لمدة شهر واحد فقط ، لذا قد تفكر في تحديد معلمة -days لتمديد الصلاحية.
على سبيل المثال: أن يكون التوقيع الذاتي ساري المفعول لمدة عامين.
openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem
تحقق من ملف CSR
openssl req -noout -text -in admingate.org.csr
التحقق ضروري للتأكد من أنك ترسل المسؤولية الاجتماعية للشركات إلى سلطة المصدر مع التفاصيل المطلوبة.
قم بإنشاء مفتاح خاص RSA
openssl genrsa -out private.key 2048
إذا كنت تحتاج فقط إلى إنشاء مفتاح خاص RSA ، فيمكنك استخدام الأمر أعلاه. لقد قمت بتضمين 2048 لتشفير أقوى.
إزالة عبارة المرور من المفتاح
openssl rsa -in certkey.key -out nopassphrase.key
إذا كنت تستخدم عبارة المرور في ملف المفتاح وتستخدم Apache ، في كل مرة تبدأ فيها ، يجب عليك إدخال كلمة المرور. إذا كنت منزعجًا من إدخال كلمة مرور ، فيمكنك استخدام opensl rsa -in admingate.org.key أعلاه – تحقق لإزالة مفتاح عبارة المرور من مفتاح موجود.
تحقق من المفتاح الخاص
openssl rsa -in certkey.key –check
إذا كنت تشك في ملف المفتاح الخاص بك ، فيمكنك استخدام الأمر أعلاه للتحقق.
تحقق من ملف الشهادة
openssl x509 -in certfile.pem -text –noout
إذا كنت ترغب في التحقق من صحة بيانات الشهادة مثل CN و OU وما إلى ذلك ، فيمكنك استخدام الأمر أعلاه الذي سيعطيك تفاصيل الشهادة.
تحقق من المرجع الموقّع على الشهادة
openssl x509 -in certfile.pem -noout -issuer -issuer_hash
تقوم الجهة المصدرة للشهادة بالتوقيع على كل شهادة وفي حالة الحاجة إلى التحقق منها.
تحقق من قيمة التجزئة لشهادة
openssl x509 -noout -hash -in bestflare.pem
تحويل DER إلى تنسيق PEM
openssl x509 –inform der –in sslcert.der –out sslcert.pem
عادةً ، ستمنحك سلطة التصديق SSL cert بتنسيق .der ، وإذا كنت بحاجة إلى استخدامها في تنسيق apache أو .pem ، فسيساعدك الأمر أعلاه.
تحويل PEM إلى تنسيق DER
openssl x509 –outform der –in sslcert.pem –out sslcert.der
في حال احتجت إلى تغيير تنسيق .pem إلى .der
تحويل الشهادة والمفتاح الخاص إلى تنسيق PKCS # 12
openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem
إذا كنت بحاجة إلى استخدام شهادة مع تطبيق java أو مع أي شخص آخر يقبل تنسيق PKCS # 12 فقط ، فيمكنك استخدام الأمر أعلاه ، والذي سينشئ ملف pfx واحدًا يحتوي على شهادة وملف مفتاح.
نصيحة: يمكنك أيضًا تضمين شهادة السلسلة عن طريق تمرير –chain على النحو التالي.
openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem
قم بإنشاء CSR باستخدام مفتاح خاص موجود
openssl req –out certificate.csr –key existing.key –new
إذا كنت لا ترغب في إنشاء مفتاح خاص جديد بدلاً من استخدام مفتاح موجود ، يمكنك استخدام الأمر أعلاه.
تحقق من محتويات شهادة تنسيق PKCS12
openssl pkcs12 –info –nodes –in cert.p12
PKCS12 هو تنسيق ثنائي ، لذا لن تتمكن من عرض المحتوى في المفكرة أو أي محرر آخر. سيساعدك الأمر أعلاه في رؤية محتويات ملف PKCS12.
قم بتحويل تنسيق PKCS12 إلى شهادة PEM
openssl pkcs12 –in cert.p12 –out cert.pem
إذا كنت ترغب في استخدام تنسيق pkcs12 الحالي مع Apache أو بتنسيق pem فقط ، فسيكون هذا مفيدًا.
اختبار شهادة SSL لعنوان URL معين
openssl s_client -connect yoururl.com:443 –showcerts
أستخدم هذا كثيرًا للتحقق من صحة شهادة SSL لعنوان URL معين من الخادم. هذا مفيد جدًا للتحقق من صحة تفاصيل البروتوكول والتشفير والشهادة.
اكتشف إصدار OpenSSL
openssl version
إذا كنت مسؤولاً عن ضمان أمان OpenSSL ، فمن المحتمل أن يكون أحد الأشياء الأولى التي يجب عليك القيام بها هو التحقق من الإصدار.
تحقق من تاريخ انتهاء صلاحية شهادة ملف PEM
openssl x509 -noout -in certificate.pem -dates
مفيد إذا كنت تخطط لوضع بعض المراقبة للتحقق من الصلاحية. سيُظهر لك تاريخًا بصيغة notBefore و notAfter. notAfter هي واحدة يجب عليك التحقق منها لتأكيد ما إذا كانت الشهادة منتهية الصلاحية أو لا تزال صالحة.
السابق:
[[email protected] opt]# openssl x509 -noout -in bestflare.pem -dates notBefore=Jul 4 14:02:45 2015 GMT notAfter=Aug 4 09:46:42 2015 GMT [[email protected] opt]#
تحقق من تاريخ انتهاء صلاحية الشهادة الخاص بـ SSL URL
openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate
مفيد آخر إذا كنت تخطط لمراقبة تاريخ انتهاء صلاحية شهادة SSL عن بُعد أو عنوان URL معين.
السابق:
[[email protected] opt]# openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate notAfter=Dec 8 00:00:00 2015 GMT
تحقق من قبول SSL V2 أو V3 على URL
للتحقق من SSL V2
openssl s_client -connect secureurl.com:443 -ssl2
للتحقق من SSL V3
openssl s_client -connect secureurl.com:443 –ssl3
للتحقق من TLS 1.0
openssl s_client -connect secureurl.com:443 –tls1
للتحقق من TLS 1.1
openssl s_client -connect secureurl.com:443 –tls1_1
للتحقق من TLS 1.2
openssl s_client -connect secureurl.com:443 –tls1_2
إذا كنت تقوم بتأمين خادم ويب وتحتاج إلى التحقق من تمكين SSL V2 / V3 أم لا ، فيمكنك استخدام الأمر أعلاه. إذا تم التنشيط ، فستحصل على “CONNECTED” وإلا “فشل المصافحة.”
تحقق من قبول الشفرة المعينة على URL
openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443
إذا كنت تعمل على نتائج الأمان وأظهرت نتائج اختبار القلم أنه تم قبول بعض الأصفار الضعيفة ، ثم للتحقق من الصحة ، يمكنك استخدام الأمر أعلاه.
بالطبع ، سيتعين عليك تغيير التشفير وعنوان URL ، اللذين تريد اختبارهما. إذا تم قبول الشفرة المذكورة ، فستحصل على “CONNECTED” وإلا “فشل المصافحة.”
آمل أن تساعدك الأوامر المذكورة أعلاه في معرفة المزيد عن OpenSSL لإدارة شهادات SSL لموقعك على الويب.