bg-tutorials

كيفية التحقق من تاريخ انتهاء صلاحية شهادة SSL باستخدام OpenSSL

شهادات SSL لها فترات صلاحية محدودة ويجب تجديدها بانتظام للحفاظ على ثقة المتصفحات. الشهادات العامة الصادرة بعد 15 مارس 2026 مقيدة بـ 200 يوم، مع انخفاض الحد الأقصى للصلاحية إلى 100 يوم في 15 مارس 2027 و47 يومًا في 15 مارس 2029. معرفة موعد انتهاء صلاحية الشهادة بدقة يساعدك على التجديد في الوقت المناسب وتجنب انقطاع الخدمة.

يوضح لك هذا الدليل كيفية التحقق من انتهاء صلاحية الشهادة باستخدام OpenSSL: لخادم مباشر، ولملف محلي، وكيفية التحقق مما إذا كانت الشهادة على وشك الانتهاء.

الإجابة السريعة:

لموقع ويب مباشر، شغّل:

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate. 

لملف شهادة، شغّل:

openssl x509 -in your_certificate.pem -noout -enddate. 

قيمة notAfter هي تاريخ انتهاء الصلاحية.

الطريقة 1: التحقق من شهادة على خادم مباشر

تتصل هذه الطريقة بموقع ويب قيد التشغيل وتقرأ الشهادة التي يقدمها، ولا تحتاج إلى ملف الشهادة. تعمل مع أي مضيف يمكن الوصول إليه (نطاق بعيد، أو localhost مع المنفذ الصحيح لخادم محلي).

على Linux وmacOS

echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -enddate

استبدل yourdomain.com بنطاقك الفعلي. الأوامر متطابقة على macOS، نظرًا لأن macOS يشبه Unix (الـ openssl المدمج فيه هو LibreSSL، الذي يدعم هذه الخيارات).

على Windows

  • افتح موجه الأوامر أو PowerShell (اضغط Win + R، واكتب cmd أو powershell، ثم اضغط Enter).
  • شغّل:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>nul | openssl x509 -noout -enddate

على Windows، استخدم 2>nul بدلًا من 2>/dev/null لتجاهل رسائل الخطأ.

الطريقة 2: التحقق من شهادة من ملف PEM

ملف PEM هو شهادة مشفرة بـ base64 تبدأ بـ —–BEGIN CERTIFICATE—– وتنتهي بـ —–END CERTIFICATE—–. استخدم هذه الطريقة عندما يكون ملف الشهادة موجودًا على القرص.

على Linux وmacOS

انتقل إلى المجلد الذي يحتوي على شهادتك، ثم اقرأ تاريخ انتهائها (استبدل your_certificate.pem باسم ملفك):

cd /path/to/your/certificate/directory
openssl x509 -in your_certificate.pem -noout -enddate

على Windows

cd C:pathtoyourcertificatedirectory
openssl x509 -in your_certificate.pem -noout -enddate

تأكد من تثبيت OpenSSL وإضافته إلى PATH؛ وإلا، حدد المسار الكامل لملف openssl.exe.

عرض كلا التاريخين، أو التحقق مما إذا كانت الشهادة ستنتهي قريبًا

لعرض كل من تاريخ الإصدار (notBefore) وتاريخ الانتهاء (notAfter)، استخدم -dates بدلًا من -enddate:

openssl x509 -in your_certificate.pem -noout -dates

للتحقق مما إذا كانت الشهادة ستنتهي خلال نافزة زمنية محددة، استخدم -checkend مع عدد من الثواني (هنا، 2592000 ثانية = 30 يومًا):

openssl x509 -in your_certificate.pem -noout -checkend 2592000

يطبع Certificate will not expire (ويخرج بالحالة 0) أو Certificate will expire (الحالة 1) — مما يجعله مثاليًا لسكريبتات المراقبة ومهام cron.

فهم الأمر والمخرجات

خذ أمر الخادم المباشر ومخرجاته مثالًا:

echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -enddate

المخرجات:

notAfter=Sep 15 23:59:59 2026 GMT

إليك ما يفعله كل جزء:

  • echo | — يرسل إدخالًا فارغًا حتى ينتهي الأمر دون انتظار تفاعل.
  • openssl s_client — يفتح اتصال SSL/TLS بالخادم.
  • -servername example.com — يضبط Server Name Indication (SNI)، وهو مطلوب عندما يستضيف الخادم شهادات متعددة لنطاقات مختلفة.
  • -connect example.com:443 — المضيف والمنفذ للاتصال بهما (المنفذ 443 هو منفذ HTTPS القياسي).
  • 2>/dev/null (Linux/macOS) أو 2>nul (Windows) — يتجاهل رسائل الخطأ حتى تُعرض المخرجات ذات الصلة فقط.
  • | openssl x509 -noout -enddate — يمرر الشهادة إلى أداة x509؛ -noout يمنع طباعة PEM و-enddate يطبع تاريخ الانتهاء فقط.
  • notAfter=… — التاريخ والوقت الذي تتوقف فيه الشهادة عن الصلاحية.

أتمتة العملية: توقف عن تتبع التواريخ يدويًا

بدلًا من التحقق من تواريخ الانتهاء يدويًا، خاصةً مع تقلص فترات الصلاحية نحو 47 يومًا، يمكنك استخدام ACME كـ Certificate-as-a-Service (CaaS). يتولى التحقق من النطاق، وتثبيت الشهادات، وتجديدها تلقائيًا قبل انتهاء صلاحيتها، حتى يظل موقعك موثوقًا دون تدخل يدوي.

خلاصة القول

يتحقق OpenSSL من انتهاء صلاحية الشهادة في سطر واحد، من خادم مباشر باستخدام s_client، أو من ملف باستخدام x509 -enddate، بينما تضيف -dates و-checkend تاريخ الإصدار وفحص قرب الانتهاء. يخبرك حقل notAfter بالضبط متى تجدد لتتجنب انقطاع الخدمة. عندما تكون مستعدًا للتجديد، تصفح شهادات SSL لدينا.

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

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

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

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