لماذا يرفض OpenConnect البوابة بعد تبديل الشهادة؟
فشل التحقق بعد تبديل شهادة البوابة قرار ثقة، لا نفق معطل. اختر بين الجهة المُصدرة للشهادة وتثبيت مفتاح واحد.
تستبدل البوابات الشهادات، فيبدأ العميل الذي كان متصلاً أمس بالتوقف عند أول تبادل TLS. تُسمّي الرسالة سبباً متعلقاً بالتحقق لا عطلاً في الشبكة، والجهاز نفسه لم يتغير، وهذه هي القرينة المفيدة. ما انكسر هو العلاقة بين الشهادة المعروضة الآن والجذور التي يقبل العميل اعتبارها. إصلاح ذلك قرار ثقة، فاتخذ هذا القرار قبل أن تكتب أي خيار.
اقرأ الفشل قبل أن تغير أي إعداد ثقة
خطأ من نوع «الموقع الموقّع مفقود» يعني أن السلسلة تنتهي عند شيء لا يقبله العميل. قد يكون ذلك شهادة مجددة من جهة داخلية، أو بديلاً من جهة عامة، أو جهازاً في المنتصف يعرض شهادته الخاصة. الصياغة وحدها لا تستطيع تمييز تلك الحالات، فانظر إلى الجهة المصدرة قبل أن تقرر.
شغّل الاتصال مرة واحدة في المقدمة واتركه يفشل، لأن الخرج التفاعلي يحمل اسم الخادم وسلسلة الجهة المصدرة والبصمة التي حسبها العميل. قارن تلك الجهة المصدرة بجهة تشغّلها منظمتك فعلاً. إذا تغيرت البصمة بينما لم تتغير الجهة المصدرة، فتعامل معها كأمر مريب حتى يُؤكد التجديد عبر قناة تثق بها أصلاً. التخمين في هذه اللحظة هو الطريق الذي ينتهي بصاحبه إلى تثبيت مفتاح جهة اعتراض.
سجّل إصدار العميل في الملاحظة نفسها. نسبة كبيرة من الأعطال التي تبدو مشكلات ثقة تأتي من عميل أقدم يواجه تبادلاً أحدث من البوابة.
اختر بين الثقة بالجهة المصدرة وتثبيت مفتاح واحد
كلا الخيارين يجعل الاتصال ينجح. لكنهما ينكسران لاحقاً بطريقتين متعاكستين، فاختيارك يتبع العطل الذي تستطيع تحمله.
| Approach | Good fit | What breaks it |
|---|---|---|
Trust the issuing CA with --cafile | Internal PKI you can obtain over an already trusted channel | CA rotation, or a client that still falls back to public roots |
Pin one key with --servercert | No CA relationship, or exactly one key should ever be accepted | Any reissue that generates a new key pair |
الجأ إلى ملف CA عندما تأتي الشهادة من جهة تستطيع التحقق منها باستقلال، لأن التجديدات تظل تعمل دون لمس وسائط العميل. اقرنه بالمفتاح الذي يعطل جذور النظام، وإلا استطاعت جهة عامة أن تفي بالفحص نيابة عنك. ثبّت المفتاح بدلاً من ذلك عندما لا تكون للبوابة جهة يمكنك الحصول عليها، أو عندما يكون أضيق استثناء ممكن هو الهدف. لا مسار أكثر أماناً في المجرد: الجهة تتسع عبر التجديدات، والتثبيت أسهل في المراجعة.
أياً كان اختيارك، يجب أن تصل القيمة الموثوقة عبر قناة كانت موثوقة قبل حدوث التغيير. المدير أو جلسة طرفية على البوابة أو نسخة أُخذت مسبقاً كلها مؤهلة. نسخ أي بصمة يعرضها الطلب مريح، وهو أيضاً بالضبط ما تأمله جهة اعتراض.
ضع القيمة في الأمر الذي تشغله فعلاً
تنتقل البصمة في خيار شهادة الخادم، وبادئته تحدد الترميز: بصمات المفتاح العام الست عشرية تحت sha1 أو sha256، وتثبيت المفتاح بترميز base64 تحت pin-sha256. تزويده يعطل أيضاً ثقة النظام لتلك الجلسة، فيصبح المفتاح المثبت هو القرار كله.
sudo openconnect --protocol=gp vpn.example.com --user alice \
--servercert pin-sha256:AbCdEf... # single key pin
sudo openconnect vpn.example.com --cafile /etc/ssl/internal-ca.pem --no-system-trust
يطابق العميل بصمة مبتورة، ويقبل أربعة أحرف فقط بعد البادئة، وهذا فخ لا تسهيل. القيمة المختصرة تنجح محلياً ولا تحدد البوابة التي قصدتها. انسخ السلسلة الكاملة التي طبعها العميل في المحاولة الأولى بدل إعادة كتابتها من رسالة. ثم انقل الخيار النهائي إلى سكربت التغليف أو ملف الوحدة أو الملف الشخصي الذي يشغّل الاتصال، ليكون قرار الثقة قابلاً للمراجعة والتعديلات اللاحقة متعمدة.
تخزن مشغلات سطح المكتب وإضافة NetworkManager نسختها الخاصة من وسائط الاتصال. سكربت عُدّل على القرص لا يصل إلى ملف شخصي استُورد سابقاً، فتبقى القيمة المخزنة هي الفائزة.
تعامل مع تبديل دون أن تحبس نفسك خارجاً
يمكن إعطاء الخيار أكثر من مرة، فالتغيير المخطط يمكن أن يقبل المفتاحين الصادر والوارد معاً. أضف التثبيت الجديد قبل أن تتحول البوابة، وأبقِ الاثنين مدرجين ما دامت الجلسات تنتقل، وأسقط المتقاعد متى اختفى المفتاح القديم. تلك النافذة تحتاج إلى مسؤول، لأن تثبيتاً مزدوجاً منسياً يترك مفتاحاً موثوقاً دون من يراقبه. إعادة البناء التي تنتج زوج مفاتيح جديد تكسر التثبيت الخالص، والاستعادة هي الإجراء نفسه في الاتجاه الآخر.
اكتب تاريخ التغيير بجانب التثبيت. تثبيت بلا تاريخ مراجعة هو انقطاع مستقبلي يحمل رسالة خطأ مربكة.
استبعد إصدار العميل قبل تعديل الثقة
قد يفشل عميل قديم أثناء تحليل رد مصادقة غيّرته البوابة منذ ذلك الحين، ورسالة السطح ما زالت تتحدث عن الاتصال لا عن المحلل. قارن الإصدار المثبت بما توثقه البوابة، واختبر حزمة حالية في ملف شخصي مؤقت قبل تغيير أي إعداد ثقة.
openconnect --version
بعد الإصلاح، تحقق من شيئين لا من واحد: تحميل البوابة عبر النفق، واستجابة عنوان داخلي عادي. اكتمال المصافحة يثبت فقط أن قرار الثقة قُبل.