Tệp batch dừng với thông báo “Hệ thống không thể tìm thấy khóa hoặc giá trị sổ đăng ký đã chỉ định” và mọi người cho rằng cơ quan chứng thực đã hỏng. Không phải vậy, hoặc ít nhất là chưa: tập lệnh đã thất bại khi đang tìm phần mềm, trước khi yêu cầu Easy-RSA làm bất cứ điều gì với khóa. Thứ tự đó quan trọng, vì nó có nghĩa là việc sửa chữa là một vấn đề tìm kiếm và PKI chỉ là người quan sát. Đọc dòng thất bại là toàn bộ chẩn đoán, và việc đó mất ít thời gian hơn mọi cách vòng tránh.

Lỗi xảy ra trước khi CA bị chạm tới

Các tệp batch Easy-RSA 2 cũ định vị OpenSSL hoặc bản cài OpenVPN bằng cách truy vấn sổ đăng ký, rồi đặt biến dựa trên những gì tìm thấy. Khi truy vấn không trả về gì, tập lệnh dừng trước khi bất kỳ thao tác chứng chỉ nào chạy.

Vì vậy, thông báo về một khóa sổ đăng ký là bằng chứng về môi trường của tập lệnh, không phải về thư mục CA.

Hai chế độ xem sổ đăng ký, một tệp batch

Tiến trình 32-bit và tiến trình 64-bit có thể thấy các chế độ xem sổ đăng ký khác nhau, và một tệp batch giả định một chế độ có thể bỏ sót mục tồn tại ở chế độ kia. Những so sánh chỉ đọc này cho thấy sự khác biệt đối với khóa cũ mà một số tập lệnh cũ dùng:

reg query "HKLM\SOFTWARE\OpenVPN" /reg:32
reg query "HKLM\SOFTWARE\OpenVPN" /reg:64

Tài liệu tham chiếu reg query mô tả các bộ chọn chế độ xem. Chạy cả hai trong cùng ngữ cảnh với tập lệnh thất bại, vì chế độ xem phụ thuộc vào cách tiến trình khởi động cũng như các cờ. Nếu mục chỉ tồn tại ở một chế độ xem, hãy so sánh đường dẫn mà nó trỏ tới với các công cụ đã cài trước khi thay đổi bất cứ điều gì. Một khóa tồn tại nhưng trỏ tới thư mục cài đặt cũ là lỗi khác với khóa vắng mặt.

Nếu cả hai chế độ xem đều không có mục đó, trình cài đặt chưa bao giờ tạo nó, và việc tự tạo giá trị sẽ không làm công cụ hoạt động.

Đừng thêm /reg:64 một cách vô điều kiện

Cách sửa hấp dẫn là thêm bộ chọn 64-bit vào mọi truy vấn rồi tiếp tục. Ở một số bản cài đặt điều đó đúng, ở những bản khác nó đưa tập lệnh tới một chế độ xem thực sự không có gì.

Chỉ thay đổi tìm kiếm sau khi đã thấy chế độ xem nào chứa giá trị mong đợi.

Khám phá không phải sửa chữa PKI

Lỗi này không chứng minh rằng chứng chỉ CA, khóa ký, tệp số sê-ri hay cơ sở dữ liệu thu hồi bị hỏng. Chạy clean-all sao chép từ một hướng dẫn cũ sẽ phá hủy một tập đối tượng hoàn toàn khác trong khi vẫn để việc tìm kiếm bị hỏng. Hãy tách hai hoạt động đó trong đầu và trong phiếu. Nếu sau này một thao tác chứng chỉ thất bại, hãy đánh giá nó dựa trên bằng chứng của chính nó.

Sao lưu thư mục CA trước mọi thử nghiệm, kể cả thử nghiệm mà bạn chắc chắn là chỉ đọc.

Chuyển sang Easy-RSA 3 là một cuộc di trú

Một bản cài đặt được bảo trì nên dùng trình khởi chạy và mô hình cấu hình của chính gói hiện tại, và Easy-RSA 3 không phải cùng một quy trình tệp batch như Easy-RSA 2. Hướng dẫn khởi động nhanh cho PKI mới của nó không phải chỉ dẫn di trú cho một cơ quan đang tồn tại. Trước khi đổi phiên bản, hãy giữ lại tư liệu CA cùng hồ sơ cấp phát và thu hồi, và làm theo hướng dẫn nâng cấp của phiên bản đó. Khởi tạo một CA thay thế bên trong thư mục có thẩm quyền để lỗi khám phá công cụ biến mất là lựa chọn tồi tệ nhất trong danh sách.

Đổi phiên bản là một dự án; lỗi sổ đăng ký là một buổi chiều.

Phép so sánh thực sự giải quyết nó

Viết ra bốn điều và so sánh trực tiếp:

  • Tập lệnh nào đã chạy, và dòng nào đã thất bại.
  • Dòng đó đã truy vấn chế độ xem sổ đăng ký nào.
  • Tập lệnh mong đợi đường dẫn tệp thực thi nào.
  • Bản cài đặt nào thực sự có trên máy.

Khi bốn điều đó khớp nhau, lỗi biến mất, và bất kỳ vấn đề chứng chỉ nào còn lại có thể được đọc dựa trên bằng chứng của chính nó thay vì đổ lỗi cho CA.

Bài viết liên quan