يدلّك برنامج تعليمي على تحرير vars في دليل Easy-RSA، والدليل على جهازك لا يحتوي على مثل هذا الملف. هذا عادةً عدم توافق بين إصدارين وليس حزمة معطوبة. احتفظ Easy-RSA 2 بملف vars إلى جانب مساعدات الصدفة مثل build-key؛ ويقدّم Easy-RSA 3 أمر easyrsa واحدًا ويقرأ الإعدادات من قالب مع خيارات سطر الأوامر. اكتشف أيّهما لديك قبل أن تنسخ أي شيء من الدليل.

نفّذ هذه الفحوص بالترتيب، لأن كل فحص يضيّق التالي.

1. اجرد ما هو مثبت

على نظام من عائلة Debian، اسأل مدير الحزم عن الملفات التي سجّلها فعليًا:

dpkg-query -L easy-rsa

تتضمن قائمة حزمة Debian الحالية make-cadir وبرنامج easyrsa وقالب إعدادات OpenSSL وvars.example. يخبرك ذلك بما شحنته هذه التوزيعة. لا يخبرك كيف رتّبت توزيعة أخرى أو أرشيف tar من المنبع الإصدار نفسه، لذا اقرأ الإصدار قبل أن تفسّر المسارات. إذا لم يُظهر الناتج make-cadir إطلاقًا، فأنت تنظر على الأرجح إلى جيل تعبئة مختلف وليس إلى تثبيت معطوب.

الأمر easyrsa --version هو أقصر طريق لمعرفة الإصدار الذي تقرأ عنه، ويستحق تشغيله قبل أي أمر آخر في دليل.

2. ميّز الجيل 2 من الجيل 3

شحن الجيل 2 مساعدات صدفة وملف vars كان يُتوقع منك تحريره. يشحن الجيل 3 أمر easyrsa واحدًا مع أوامر فرعية، ويقرأ الإعدادات من قالب مع خيارات صريحة.

يفسّر هذا الفرق معظم تقارير «الملف غير موجود» في هذا الموضوع. الدليل المكتوب للجيل 2 يطلب منك تنفيذ source vars وتشغيل build-key، وتثبيت الجيل 3 لا يحتوي على أي منهما. ملاحقة الملف المفقود من نسخة جهاز آخر هي الطريقة التي ينتهي بها الناس إلى تشغيل جيلين على دليل PKI واحد.

3. افصل دليل البرنامج عن مساحة عمل PKI

دليل البرنامج المثبت للقراءة فقط بحكم التصميم. PKI لديك دليل منفصل يضم CA والشهادات الصادرة والمفاتيح الخاصة، وهو الدليل الذي يحمل الأذونات التي عليك ضبطها بشكل صحيح.

إذا كانت هناك سلطة قائمة بالفعل، فابحث عن شهادتها العامة وتأكد من حالتها قبل أن تلمس أي شيء. لا تهيّئ بديلًا، ولا تكتب فوق الفهرس لأن برنامجًا تعليميًا استخدم مسارًا مختلفًا. نسخ القوالب العامة غير مؤذٍ، أما نسخ المفتاح الخاص لجهة إصدار فليس كذلك، وفي الصدفة تبدو العمليتان متطابقتين تقريبًا.

4. تحقق من الاقتباس قبل أن تلاحق مسارًا

غالبًا ما يصل النص المنسوخ من صفحة منسّقة بعلامات اقتباس مطبعية. لا يعامل Bash كاقتباس إلا محدداته الأسطرية الموثقة من ASCII، لذلك يصبح المسار الملفوف بعلامات اقتباس معقوفة اسم ملف حرفيًا غير موجود.

printf '%s\n' "$EASY_RSA"

يطبع ذلك قيمة متغير واحد بدلًا من البيئة بأكملها، وهو ما تريده عندما يكون السؤال هو ما إذا كانت القيمة تحمل أحرفًا شائبة أو مسافات. لا تفترض أن EASY_RSA ما زال يختار الإعدادات في الجيل 3؛ استخدم خيار دليل PKI الموثق للإصدار الذي لديك بدلًا من ذلك.

5. توقف قبل أن تعيد تهيئة أي شيء

بعد أن يتفق جيل البرنامج والمسارات المثبتة ودور مساحة العمل، يكون الخطأ المتبقي على الأرجح مشكلة أذونات أو حالة مفقودة، وهو يستحق تشخيصًا خاصًا به بدلًا من حل التفافي آخر.

تثبيت حزمة مخزّنة مؤقتًا من إصدار آخر، أو نسخ الأدلة بشكل متكرر، أو إنشاء سجلات جهة إصدار فارغة، يخفي عدم التوافق الأصلي ويضيف ثانيًا. اكتب الإصدار والمسار والخطأ الدقيق قبل أن تغيّر أي شيء. هذه الثلاثة هي ما يحوّل الخطوة التالية إلى قرار بدلًا من تخمين آخر، وتمنع الشخص التالي من تكرار البحث.

مقالات ذات صلة