ساعة الجهاز الخاطئة قد توقف VPN: تحقق من الوقت أولاً
تُقيَّم الشهادة مقابل اللحظة، لا مقابل تسمية المنطقة الزمنية. اقرأ الساعة وتواريخ الشهادة ومسار مصدر الوقت قبل الاستبدال.
يتوقف VPN عن الاتصال، ويذكر السجل شهادة، وتكون أول ردة فعل هي استبدال الملف الشخصي. ساعة جهاز متأخرة أو متقدمة بدقائق أو ساعات تنتج ذلك الخطأ نفسه، لأن صلاحية الشهادة تُقاس مقابل اللحظة المحلية. تسمية المنطقة الزمنية على الشاشة ليست المشكلة؛ الوقت الأساسي هو المشكلة. تحقق من الساعة قبل أن تلمس أي مادة خاصة بالشهادة.
الخطأ يبدو كمشكلة شهادة، لا كمشكلة ساعة
تفشل مصافحة TLS عندما تقع شهادة الطرف الآخر خارج نافذة صلاحيتها بالنسبة إلى ساعة المُتحقِّق. يجري ذلك الفحص على العميل، لذا فإن ساعة عميل خاطئة ترفض شهادة سليمة تماماً. نص الخطأ يذكر الشهادة، ولهذا يستبدلها الناس ثم يرون الفشل نفسه مرة أخرى. الساعة هي الفرضية الأرخص وينبغي اختبارها أولاً.
الساعة المتقدمة على الوقت الحقيقي ترفض شهادة حالية على أنها منتهية؛ والساعة المتأخرة ترفض شهادة أحدث على أنها ليست صالحة بعد. كلتا الرسالتين تشيران إلى التواريخ، وكلتاهما تُنتَج دون أي اتصال بجهة إصدار الشهادات. هذا هو الدليل: الانتهاء الحقيقي يصيب كل عميل، أما مشكلة الساعة فتصيب الجهاز الوحيد الذي يحمل الوقت الخاطئ.
اقرأ اللحظة، ثم اقرأ الشهادة
اطبع الساعة بتوقيت UTC وتواريخ الشهادة نفسها قبل تغيير أي شيء. مقارنة لحظتين مطلقتين تزيل مسألة المنطقة الزمنية من التحقيق تماماً. إذا كانت نافذة الشهادة تحتوي اللحظة الحالية، فالشهادة ليست سبب فشلك.
date -u
timedatectl
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com </dev/null 2>/dev/null | openssl x509 -noout -dates
إذا كانت الساعة المحلية خاطئة، فتحقق مما إذا كانت مُزامَنة ومع أي مصدر. الجهاز الذي أُوقفت المزامنة فيه، أو الذي له مصدر وقت لا يستطيع الوصول إليه، ينحرف حتى يفشل شيء ما. يُسمّي مخرَج الحالة المصدر وآخر تعديل ناجح، وهو أنفع من الإزاحة الحالية وحدها. الإزاحة الكبيرة دون مصدر مُهيَّأ مشكلة مختلفة عن إزاحة صغيرة مقابل مصدر يعمل.
timedatectl timesync-status
chronyc tracking
توقف إذا كانت الشهادة منتهية حقاً عند كل عميل. عندئذٍ تكون الساعة سليمة وتكون الشهادة بحاجة إلى تجديد، لا إلى تعديل.
رموز تسجيل الدخول تفشل لسبب ذي صلة لكنه مختلف
كلمات المرور لمرة واحدة المبنية على الوقت تستمد قيمتها من خطوة الوقت الحالية، وهي عادة ثلاثون ثانية. الجهاز الذي تنحرف ساعته أكثر من خطوة أو خطوتين ينتج رموزاً لن يقبلها الخادم، حتى لو كتب المستخدم الأرقام الصحيحة. يبدو الخطأ ككلمة مرور خاطئة، وهذا يدفع الناس إلى حلقة إعادة تعيين لا تستطيع إصلاح ساعة.
حدد أي مكوّن رفض المحاولة، لأن عميل VPN والبوابة ومزوّد الهوية يبلّغون عن مراحل مختلفة. إذا رُفض الرمز وقُبلت كلمة المرور، فالحساب سليم على الأرجح والساعة هي المشتبه بها. إذا رُفض الاثنان، فقد يكون الحساب مقفلاً والساعة مساراً مضللاً. اتبع إرشادات الاستعادة من المزوّد بدلاً من الموافقة على مطالبات لم تبدأها.
لا تُرجع الساعة إلى الوراء لجعل الرمز يعمل. إنها تخفي السبب وتكسر الفحص التالي المبني على الوقت.
أصلح المصدر، لا الساعة المعروضة
المزامنة خدمة شبكية، ويمكن للنفق أن يغيّر إمكانية الوصول إلى مصدر الوقت. قد يتطلب مصدر مؤسسي النفق، بينما قد يُحجب مصدر عام بالسياسة. قد يعمل التصفح بينما يفشل مسار خدمة الوقت نفسها، ولهذا يسهل تفويت هذا الاعتماد. NTP هو البروتوكول وراء التعديل، وهو يحتاج إلى مساره الخاص مثل أي خدمة أخرى.
sudo systemctl status systemd-timesyncd
sudo chronyc sources -v
ping -c1 203.0.113.20
هناك أيضاً مشكلة في ترتيب الإقلاع: ساعة خاطئة بشدة قد تمنع نفقاً موثقاً، وقد يكون مصدر الوقت الوحيد القابل للاستخدام خلف ذلك النفق. الأسطول المُدار يحتاج إجراءً موثقاً لتلك الحالة، وتجاوز التحقق من الشهادة ليس إجراءً منها. على جهاز شخصي، استخدم عناصر التحكم بالوقت في نظام التشغيل واكتشف لماذا تُفقد الساعة بعد الإيقاف أو الاستعادة. الجهاز الذي ينحرف عند كل إقلاع لديه مشكلة عتاد أو تهيئة، لا مشكلة VPN.
بعد الإصلاح، أعد محاولة الاتصال الأصلي واقرأ الخطأ الجديد بشكل منفصل. هوية خادم سيئة، وشهادة انتهت فعلاً، وحساب مرفوض هي ثلاثة أعطال مختلفة، وخلطها هو ما يحول تصحيح ساعة بسيط إلى أسبوع من استبدال الملفات الشخصية.