Một hướng dẫn bảo bạn sửa vars trong thư mục Easy-RSA, còn thư mục trên máy bạn không có tệp đó. Thường đây là sự không khớp thế hệ chứ không phải gói bị hỏng. Easy-RSA 2 giữ một tệp vars bên cạnh các trình trợ giúp shell như build-key; Easy-RSA 3 cung cấp một lệnh easyrsa duy nhất và đọc cấu hình từ mẫu cùng các tùy chọn dòng lệnh. Hãy tìm hiểu bạn có bản nào trước khi sao chép bất cứ thứ gì từ hướng dẫn.

Hãy chạy các kiểm tra này theo thứ tự, vì mỗi bước thu hẹp bước tiếp theo.

1. Kiểm kê những gì đã cài

Trên hệ thống thuộc họ Debian, hãy hỏi trình quản lý gói xem nó thực sự đã đăng ký những tệp nào:

dpkg-query -L easy-rsa

Danh sách của gói Debian hiện tại gồm make-cadir, chương trình easyrsa, mẫu cấu hình OpenSSL và vars.example. Điều đó cho biết bản phân phối này đã gửi gì. Nó không cho biết một bản phân phối khác hay một kho lưu tar upstream đã bố trí cùng thế hệ như thế nào, nên hãy đọc phiên bản trước khi diễn giải các đường dẫn. Nếu đầu ra hoàn toàn không hiển thị make-cadir, có lẽ bạn đang xem một thế hệ đóng gói khác chứ không phải bản cài bị hỏng.

easyrsa --version là cách ngắn nhất để biết bạn đang đọc về thế hệ nào, và đáng chạy trước mọi lệnh khác trong hướng dẫn.

2. Phân biệt thế hệ 2 với thế hệ 3

Thế hệ 2 gửi kèm các trình trợ giúp shell và một tệp vars mà bạn phải sửa. Thế hệ 3 gửi kèm một lệnh easyrsa với các lệnh con, và đọc cấu hình từ mẫu cùng các tùy chọn rõ ràng.

Sự khác biệt đó giải thích phần lớn báo cáo không tìm thấy tệp về chủ đề này. Hướng dẫn viết cho 2 bảo bạn chạy source vars và build-key, còn bản cài 3 không có cả hai. Việc đuổi theo tệp bị thiếu từ bản sao của máy khác là cách người ta rốt cuộc chạy hai thế hệ trên một thư mục PKI.

3. Tách thư mục chương trình khỏi không gian làm việc PKI

Thư mục chương trình đã cài chỉ đọc theo thiết kế. PKI của bạn là một thư mục riêng chứa CA, các chứng chỉ đã phát hành và khóa riêng, và chính nó mang các quyền bạn phải đặt đúng.

Nếu đã có một cơ quan chứng thực, hãy tìm chứng chỉ công khai của nó và xác nhận trạng thái trước khi bạn chạm vào bất cứ thứ gì. Đừng khởi tạo bản thay thế, và đừng ghi đè chỉ mục vì một hướng dẫn đã dùng đường dẫn khác. Sao chép mẫu công khai là vô hại, nhưng sao chép khóa riêng của nhà phát hành thì không, và trong shell hai thao tác trông gần như giống hệt nhau.

4. Kiểm tra dấu ngoặc kép trước khi đuổi theo một đường dẫn

Văn bản sao chép từ trang được định dạng thường đến cùng dấu ngoặc kép kiểu chữ. Bash chỉ coi các dấu phân cách ASCII được ghi chú của nó là dấu ngoặc kép, nên một đường dẫn được bọc trong ngoặc kép cong sẽ trở thành tên tệp nguyên văn không tồn tại.

printf '%s\n' "$EASY_RSA"

Lệnh này in giá trị của một biến thay vì toàn bộ môi trường, đó chính là điều bạn muốn khi câu hỏi là giá trị có chứa ký tự lạ hay khoảng trắng hay không. Đừng cho rằng EASY_RSA vẫn chọn cấu hình ở thế hệ 3; thay vào đó hãy dùng tùy chọn thư mục PKI được ghi chú cho phiên bản của bạn.

5. Dừng lại trước khi khởi tạo lại bất cứ thứ gì

Khi thế hệ chương trình, các đường dẫn đã cài và vai trò của không gian làm việc khớp nhau, lỗi còn lại có lẽ là vấn đề quyền hoặc trạng thái bị thiếu, và nó xứng đáng được chẩn đoán riêng thay vì một cách lách khác.

Cài một gói đã lưu trong bộ nhớ đệm từ bản phát hành khác, sao chép thư mục đệ quy hoặc tạo bản ghi nhà phát hành trống sẽ che giấu sự không khớp ban đầu và thêm một cái thứ hai. Hãy ghi lại phiên bản, đường dẫn và lỗi chính xác trước khi thay đổi bất cứ thứ gì. Ba điều đó biến bước tiếp theo thành một quyết định thay vì một phỏng đoán nữa, và giữ người tiếp theo khỏi lặp lại việc tìm kiếm.

Bài viết liên quan