خطأ Easy-RSA في السجل على Windows: تحقَّق من عرض السجل
رسالة السجل تلك هي فشل في العثور على الأدوات، وليست عطلاً في CA. قارن بين عرضي 32 بت و64 بت قبل تعديل ملف الدفعة أو PKI.
يتوقف ملف الدفعة عند الرسالة “لم يتمكن النظام من العثور على مفتاح السجل أو القيمة المحددة”، ويفترض الجميع أن جهة إصدار الشهادات معطلة. الأمر ليس كذلك، أو على الأقل ليس بعد: فقد فشل النص البرمجي أثناء البحث عن البرامج، قبل أن يطلب من Easy-RSA فعل أي شيء بمفتاح. هذا الترتيب مهم، لأنه يعني أن الإصلاح مشكلة بحث وليس العطل في PKI، وأن PKI مجرد مشاهد. قراءة السطر الذي فشل هي التشخيص كله، وتستغرق وقتًا أقل من أي من الحلول البديلة.
الخطأ يحدث قبل لمس CA
تحدد ملفات الدفعة القديمة الخاصة بـ Easy-RSA 2 موقع OpenSSL أو تثبيت OpenVPN عبر الاستعلام من السجل، ثم تضبط المتغيرات بناءً على ما تجده. وعندما لا يعيد الاستعلام شيئًا، يتوقف النص البرمجي قبل تنفيذ أي عملية شهادة.
إذن، الرسالة المتعلقة بمفتاح السجل دليل على بيئة النص البرمجي، وليست دليلًا على مجلد CA.
عرضان للسجل وملف دفعة واحد
يمكن لعملية 32 بت وعملية 64 بت أن تريا عرضين مختلفين للسجل، وملف الدفعة الذي يفترض أحدهما قد يفوّت الإدخال الموجود في الآخر. تُظهر هذه المقارنات للقراءة فقط الفرق بالنسبة للمفتاح القديم الذي تستخدمه بعض النصوص القديمة:
reg query "HKLM\SOFTWARE\OpenVPN" /reg:32
reg query "HKLM\SOFTWARE\OpenVPN" /reg:64
توثّق مرجع reg query محددات العرض. شغّل الأمرين من السياق نفسه الذي يعمل فيه النص البرمجي الفاشل، لأن العرض يعتمد على طريقة بدء العملية وعلى الأعلام أيضًا. إذا كان الإدخال موجودًا في عرض واحد فقط، فقارن المسار الذي يشير إليه بالأدوات المثبتة قبل أن تغيّر أي شيء. المفتاح الموجود الذي يشير إلى مجلد تثبيت قديم عطل مختلف عن مفتاح غائب.
إذا لم يكن الإدخال موجودًا في أي من العرضين، فالبرنامج المثبّت لم ينشئه أبدًا، ولن يجعل تصنيع قيمة يدويًا الأدوات تعمل.
لا تضف /reg:64 دون شرط
الإصلاح المغري هو إضافة محدد 64 بت إلى كل استعلام ثم المضي قدمًا. في بعض عمليات التثبيت يكون ذلك صحيحًا، وفي أخرى يرسل النص البرمجي إلى عرض لا يحتوي شيئًا فعلًا.
غيّر البحث فقط بعد أن ترى أي عرض يحمل القيمة المتوقعة.
الاكتشاف ليس إصلاحًا لـ PKI
هذا الخطأ لا يثبت أن شهادة CA أو مفتاح التوقيع أو ملف التسلسل أو قاعدة بيانات الإبطال تالفة. تشغيل clean-all منسوخ من درس قديم سيدمّر مجموعة مختلفة تمامًا من الكائنات بينما يبقى البحث معطلًا. أبقِ النشاطين منفصلين في ذهنك وفي التذكرة. وإذا فشلت عملية شهادة لاحقًا، فقيّمها بناءً على أدلتها الخاصة.
انسبخ مجلد CA قبل أي تجربة، حتى تلك التي أنت متأكد أنها للقراءة فقط.
الانتقال إلى Easy-RSA 3 هو ترحيل
يجب أن يستخدم الإعداد المُصان المشغّل ونموذج التكوين الخاصين بالحزمة الحالية، و Easy-RSA 3 ليس سير عمل ملف الدفعة نفسه الذي يقدمه Easy-RSA 2. فدليل البدء السريع الخاص به لـ PKI جديد ليس تعليمات ترحيل لجهة إصدار قائمة. قبل تغيير الإصدارات، احفظ مادة CA مع سجلات الإصدار والإبطال، واتبع إرشادات الترقية الخاصة بذلك الإصدار. تهيئة CA بديلة داخل المجلد المرجعي لجعل خطأ اكتشاف الأدوات يختفي هي أسوأ خيار في القائمة.
تغيير الإصدار مشروع كامل؛ أما خطأ السجل فيوم واحد.
المقارنة التي تحل الأمر فعليًا
اكتب أربعة أشياء وقارنها مباشرة:
- أي نص برمجي عمل، وأي سطر فشل.
- أي عرض للسجل استعلم عنه ذلك السطر.
- أي مسار تنفيذي توقعه النص البرمجي.
- أي تثبيت موجود فعلًا على الجهاز.
عندما تتفق هذه الأربعة، يختفي الخطأ، وأي مشكلة شهادات تبقى يمكن قراءتها بناءً على أدلتها بدلًا من إلقاء اللوم على CA.