فایل دسته‌ای با پیام «سیستم نتوانست کلید یا مقدار رجیستری مشخص‌شده را پیدا کند» متوقف می‌شود و همه فرض می‌کنند مرجع صدور گواهی خراب است. این‌طور نیست، یا حداقل هنوز نه: اسکریپت هنگام جست‌وجوی نرم‌افزار شکست خورد، پیش از آنکه از Easy-RSA بخواهد کاری با یک کلید انجام دهد. این ترتیب مهم است، چون یعنی تعمیر یک مسئله جست‌وجوست و 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.

مقالات مرتبط