strongSwan send_cert: متى تُرسل شهادة IKE
يتحكم send_cert في ما إذا كان النظير يرسل شهادته، بينما يطلب send_certreq الشهادة من الطرف الآخر. راجع السجلات قبل تغيير ثقة المستقبِل.
تسجّل البوابات إخفاقات المصادقة المتعلقة بالشهادات، والغريزة الأولى هي إضافة سلطة شهادات أخرى إلى المستقبِل. يفترض ذلك أن الشهادة وصلت ورُفضت. الاحتمال الآخر ألا تكون قد أُرسلت قط، وسياسة اتصال المرسل هي التي تقرر ذلك. حدّد أي الاحتمالين قد حدث قبل تغيير الثقة.
ما الذي يتحكم فيه send_cert فعليًا
تتطلب المصادقة بالشهادة أن تصل شهادة الكيان النهائي للنظير إلى الطرف الآخر عبر تبادل IKE أو عبر تجهيز مسبق. في swanctl يحدد إعداد الاتصال send_cert ما إذا كانت هذه النقطة الطرفية تُدرج حمولة شهادتها: أبدًا أو دائمًا أو ifasked. القيمة الافتراضية ifasked ترسلها ردًا على طلب شهادة من النظير. طلب الشهادة إعداد منفصل، لأن مطالبة الطرف الآخر بشهادته ليست كتقديم شهادتك.
استخدمت عمليات نشر ipsec.conf الأقدم leftsendcert وrightsendcert، وهذه الأسماء تناظر الأدوار المحلية والبعيدة لا swanctl مباشرة.
اقرأ محاولة واحدة قبل تعديل الاتصال
شخّص من محاولة مضبوطة واحدة، لا من انطباع عام بأن الشهادات معنية. يمكن فحص السياسة والاقتران النشط كليهما.
swanctl --list-conns
swanctl --list-sas
journalctl -u strongswan --since "10 min ago" | grep -iE "cert|CERT"
تعرض قائمة الاتصالات القيمة المضبوطة لـ send_cert، وتعرض قائمة SA أي الاتصالات قامت فعليًا. تضيف السجلات تفاصيل التفاوض: هل ورد طلب شهادة وهل خرجت حمولة شهادة. إخفاق مصادقة عام لا يحدد مشكلة تسليم، فابحث عن التبادل المحدد قبل استنتاج أي شيء. دوّن الطابع الزمني للمحاولة ليشمل نافذة السجل المصافحة كاملة.
ثقة المستقبِل قرار منفصل
التسليم والثقة خاصيتان مختلفتان، وإصلاح إحداهما لا يصلح الأخرى. على المستقبِل أن يملك مرساة الثقة المقصودة، وأن يتلقى سلسلة صالحة للاستخدام، وأن يطابق هوية النظير المتوقعة. شهادة الكيان النهائي التي تصل دون شهادتها الوسيطة تظل تفشل في فحص سلسلة صارم. وعلى العكس، فإن تثبيت سلطة شهادات لا يُلزم النظير بإرسال شهادته إطلاقًا.
openssl x509 -in peer-chain.pem -noout -subject -issuer -dates
يكشف الفحص أي جهة إصدار وقّعت الشهادة ومتى تنتهي، وعليها يجب أن تطابق مرساة المستقبِل. ثق بسلطة الشهادات المُصدرة التي تملكها عملية النشر، لا بكل شهادة وسيطة في السلسلة، لأن رفع كل وسيطة إلى جذر يوسّع الثقة إلى ما هو أبعد بكثير من نظير واحد. أبقِ التحقق من الهوية نشطًا، لأن الاتصال الذي ينجح فقط بتعطيل التحقق ليس إصلاحًا. حيث تكون السلسلة غير كاملة، أصلح التجهيز لا سياسة المرسل.
غيّر المرسل فقط بدليل
عندما يُظهر السجل أن الشهادة لم تُرسل قط وأن المستقبِل طلبها فعلًا، فإن ضبط send_cert على always تغيير مبرر لذلك الاتصال. طبّقه في إعداد swanctl، وأعد تحميل الاتصالات، وأنشئ جلسة جديدة بدل إعادة استخدام SA القائمة. أكّد ظهور حمولة الشهادة الآن وأن المستقبِل يقبلها وفق المرساة المقصودة. إذا لم يتغير شيء، فالعطل كان في جانب الثقة بعد كل شيء، ولم يكن إعداد المرسل هو السبب.
اكتب التبادل المرصود والمرساة والتحقق الناتج في سجل التغييرات. إصلاح الشهادة الذي لا يمكن وصفه بهذه المصطلحات مصادفة.