OpenVPN verify-x509-name: الفرق بين subject وname وname-prefix
يحدد نوع المطابقة أي اسم في الشهادة تتم مقارنته. subject وname وname-prefix ليست توقعات متكافئة، والافتراضي هو subject.
اقرأ نوع المطابقة أولاً، ثم النص: قد تبدو التوجيهات verify-x509-name صحيحة ومع ذلك تقبل شهادة لم تكن تنوي الوثوق بها. سطران بنص متوقع متطابق لكن بنوعين مختلفين هما متطلبان مختلفان. اقرأ النوع أولاً، ثم النص. تعامل مع التوجيه كشرط إضافي على الاتصال، لا كالفحص كله.
ما الذي يؤكده الخيار فعلاً
يسمّي التوجيه هوية يجب أن تحملها شهادة النظير. عندما تفشل المقارنة، OpenVPN يوقف المصافحة ولا تنشأ أي نفق. كل شيء آخر في الملف الشخصي يظل سارياً: يجب أن تتسلسل الشهادة إلى سلطة شهادة موثوقة، ويجب أن ينجح فحص الدور، لذا هذا شرط إضافي لا بديل. الملف الشخصي الذي يلبي توقع الاسم ويفشل في فحص الدور يظل معطلاً، والسجل عادة يقول ذلك.
وهو أيضاً مختلف عن التحقق من اسم المضيف الذي يقوم به المتصفح. يطابق المتصفح الأسماء مع الأسماء البديلة للموضوع وفق قواعد حزمة TLS الخاصة به، بينما يقارن OpenVPN حقلاً واحداً في الشهادة باستخدام النوع الذي اخترته. لهذا قد يؤدي لصق اسم مضيف بنمط المتصفح في التوجيه إلى عدم تطابق حتى عندما تغطي الشهادة الخدمة فعلاً.
subject: الاسم المميّز الكامل، حرفاً بحرف
مع subject، وهو الافتراضي عند عدم كتابة نوع، يجب أن تعيد القيمة المتوقعة إنتاج الاسم المميز الكامل للموضوع في الشهادة. ترتيب الحقول والفواصل والمسافات والهروب كلها محسوبة، لأن المقارنة تجري على السلسلة كما هي مرمّزة. اترك النوع خارجاً وتكون قد اخترت الأكثر صرامة من المقارنات الثلاث. لا توجد خطوة تطبيع تنقذ اختلافاً شكلياً. هذا أمر يستحق المعرفة قبل أول تجديد، لا بعده.
تلك الصرامة هشة عبر التجديدات. سلطة شهادة تعيد ترتيب السمات، أو تدرج حقلاً إضافياً، أو تغير طريقة هروب قيمة، تنتج سلسلة جديدة لنفس الجهاز، ويبدأ توجيه عمل لسنوات في الفشل عند الإصدار التالي. الاحتفاظ بالاسم المميز المقبول في سجل التغييرات يحوّل التجديد التالي إلى فرق. حيث تنشر الجهة المشغلة اسماً مميزاً كاملاً وتضمن شكله، يكون subject خياراً معقولاً؛ وفي غير ذلك يكون حقل أضيق أسهل في الحفاظ على صحته.
name: حقل واحد، عادةً الاسم الشائع
يقارن النوع name حقلاً واحداً من الموضوع. ما لم يقل الملف الشخصي غير ذلك، فإن ذلك الحقل هو الاسم الشائع، والقيمة المتوقعة هي ذلك الحقل بالضبط لا الاسم المميز المحيط به.
المشكلة أن الشهادات الحديثة لا تضع اسم الخدمة دائماً في الاسم الشائع. كثير منها يحمله في اسم بديل للموضوع ويترك الاسم الشائع فارغاً أو عاماً، لذا قد تفشل شهادة يقبلها المتصفح في هذه المقارنة. افحص الشهادة التي أُصدرت لك فعلاً قبل كتابة التوقع، وتأكد من الحقل الذي يختاره الملف الشخصي. اسم شائع فارغ يُقارن باسم هو عدم تطابق، وليس حادث إعداد.
name-prefix: واسع بالتصميم، فحدّد نطاقه
التوقع من نوع name-prefix يطابق بداية الحقل المختار. هذا مناسب لنظام تسمية وخطر على أي شيء مشترك.
مع vpn.example كتوقع، سيمرّ كل من vpn.example.com و vpn.example.net بشرط أن يوثق بقية السلسلة. الاتساع هو الميزة، وهو أيضاً الجزء الذي يجب تبريره كتابةً. البادئة معقولة عندما تكون سلطة الشهادة ونظام التسمية ملكاً لك، وأضعف بكثير عندما تصدر سلطة شهادة عامة في النمط نفسه. إذا احتاج النظام إلى مرونة، فقيّده عند سلطة الشهادة بدل توسيع فحص العميل.
اختر النوع من المعرّف، ثم أثبته
اعمل بالعكس من الهوية التي تنويها الجهة المشغلة. إذا نشرت اسماً مميزاً كاملاً وأبقته مستقراً، فإن subject يعبّر عن ذلك. إذا كانت تسمّي الخدمة بالاسم الشائع، فاستخدم name. وإذا كانت تملك نظام تسمية وتقبل فضاءه كله، فإن name-prefix يقول ذلك صراحةً.
التجديدات هي المكان الذي يُختبر فيه التوجيه. قارن الهوية المعتمدة بالشهادة الجديدة لا بالملف القديم، لأن عنوان نقطة نهاية جديداً لا يعني هوية شهادة جديدة. لا تحذف التوجيه لمجرد أن عنواناً مألوفاً يرد: إمكانية الوصول والنظير المقصود حقيقتان مختلفتان، وأن العنوان يثبت فقط أن شيئاً ما ردّ. سجّل الخطأ الدقيق وتفاصيل الاسم العام في تقرير منقّح، لأن عدم تطابق الاسم يمكن إظهاره دون أي مادة مفتاح خاص.
بعد تصحيح مدعوم، أعد الاتصال مع تمكين كل فحص مقصود وتحقق من المورد الذي تحتاجه فعلاً. النجاح يعني أن الخادم المقصود قُبل، لا أن شهادة ما قد مُرّرت. الدليل الرسمي OpenVPN 2.6 manual يوثّق الأنواع الثلاثة وملاحظات الثقة بها، وهو المرجع الذي يُقتبس عندما تختلف واجهة بائع مع الملف الشخصي.