Bạn cần thêm một chứng chỉ cho thêm một máy tính xách tay, nhưng bài hướng dẫn đầu tiên trong kết quả tìm kiếm lại bắt đầu bằng một lệnh xóa thư mục PKI. Lệnh đó thuộc về lần thiết lập đầu tiên, không phải đăng ký, và chạy nó khiến bạn mất CA, lịch sử phát hành cùng mọi hồ sơ máy khách đã tin nhà phát hành cũ. Quyết định hẹp hơn: nhà phát hành còn trạng thái dùng được không, và thiết bị mới có khớp chính sách đăng ký của bạn không? Ba điều kiện quyết định, và chỉ một điều biện minh cho việc dựng lại.

Dựng lại thực sự phá hủy những gì

Khởi tạo lại PKI thay thư mục bằng một cấu trúc rỗng: khóa và chứng chỉ CA mới, cơ sở dữ liệu phát hành trống và bộ đếm số sê-ri mới. Máy khách không tự đi theo; hồ sơ của chúng ghim CA cũ, nên mọi thiết bị phải đăng ký lại, và những thiết bị không tiếp cận được thì làm thủ công.

Mất mát lặng lẽ hơn là sổ sách. Việc thu hồi phụ thuộc vào việc bạn biết mình đã phát hành số sê-ri nào cho ai. Xóa chỉ mục thì bạn vẫn ký được, nhưng không còn nói chắc được mình định thu hồi chứng chỉ nào trong số còn hiệu lực. Một thư mục CA có chứng chỉ mà thiếu trạng thái nhà phát hành tương ứng là bản sao lưu khôi phục sai nửa hệ thống.

Sao chép khóa riêng của CA bên cạnh máy chủ đang chạy là lối tắt khác cần từ chối: nó biến cơ quan ký lẽ ra phải nằm ngoài mạng thành một tệp nữa trên máy chủ có lưu lượng không đáng tin.

Điều kiện một: trạng thái nhà phát hành còn tiếp cận được không

Trước khi quyết định, hãy tìm thư mục mà máy chủ thực sự tin. So sánh chứng chỉ máy chủ trình bày như CA với chứng chỉ trong thư mục PKI bằng dấu vân tay, không phải bằng tên tệp:

openssl x509 -in ca.crt -noout -fingerprint -sha256
openssl x509 -in /etc/openvpn/ca.crt -noout -fingerprint -sha256

Nếu dấu vân tay khớp, việc đăng ký là tăng thêm và bạn không dựng lại gì. Nếu khác, bạn đang ký bằng một CA mà máy chủ không tin: chứng chỉ cài sạch nhưng thất bại khi bắt tay, và lỗi đó bị chẩn đoán sai thành lỗi máy khách hàng giờ liền.

Sau đó tìm trạng thái phát hành: tệp chỉ mục, bộ đếm sê-ri và tệp số CRL. Nếu thiếu chỉ mục nhưng khóa còn, bạn vẫn phát hành được, nhưng thừa hưởng vấn đề ghi nhận thu hồi. Ghi điều đó vào sổ thay đổi, vì yêu cầu thu hồi tiếp theo sẽ phơi bày nó.

Điều kiện hai: ai giữ khóa riêng mới

Đây là quyết định người dùng cảm nhận được, nên hãy quyết định rõ ràng. Khóa do máy khách tạo và gửi dưới dạng yêu cầu giữ nửa riêng trên thiết bị ngay từ lệnh đầu tiên, và quản trị viên không bao giờ chạm vào. Khóa do máy chủ tạo dễ hơn cho thiết bị không có công cụ, nhưng biến quản trị viên thành người giữ mọi khóa và mở rộng tác động của một vụ xâm nhập máy chủ.

Với Easy-RSA 3 trên một CA sẵn có, nhập và ký yêu cầu là hai lệnh:

./easyrsa import-req /tmp/alice.req alice
./easyrsa sign-req client alice

Chọn loại chứng chỉ có chủ đích. Một yêu cầu được ký như chứng chỉ máy chủ thay vì máy khách tạo ra tệp trông ổn nhưng bị đối tác từ chối, và thông báo lỗi hiếm khi nói vì sao. Với openssl ca, lựa chọn tương tự nằm trong phần mở rộng bạn truyền, không phải phần mặc định.

Điều kiện ba: máy chủ có cần nhiều hơn chứng chỉ không

Với một máy chủ OpenVPN thông thường dùng xác thực bằng chứng chỉ, chứng chỉ chính là đăng ký: tên chung trở thành danh tính máy khách, và mọi thư mục, tuyến đẩy hay địa chỉ tĩnh đều gắn với tên đó. Thêm chứng chỉ mà quên cấu hình thì đường hầm kết nối nhưng các tuyến cần thiết không xuất hiện.

Các nền tảng thay đổi điều này. OpenVPN Access Server giữ cơ sở dữ liệu người dùng riêng, nên chứng chỉ đã ký không phải tài khoản; tài khoản phải tồn tại và được cho phép. Các cổng khác gắn chuỗi danh tính với nhóm. Đăng ký một thiết bị thường chạm hai hệ thống, và chứng chỉ chỉ là thứ đầu tiên.

Thủ tục tăng thêm và khi nào dựng lại là đúng

Trình tự thêm một thiết bị mà không gây thiệt hại: xác nhận nhà phát hành bằng dấu vân tay, lấy bản sao lưu mới của thư mục PKI, nhập và ký yêu cầu cho vai trò máy khách, giao chứng chỉ kèm chuỗi qua kênh đã duyệt, rồi xác minh trước khi người dùng kết nối:

openssl verify -CAfile ca.crt alice.crt
openssl x509 -in alice.crt -noout -subject -issuer -dates -purpose

Dòng mục đích phải hiển thị SSL client. Kết thúc bằng việc cập nhật bản sao lưu CA sau khi phát hành, vì bản sao lưu lấy trước khi ghi số sê-ri mới sẽ khôi phục trạng thái không có thiết bị bạn vừa thêm.

Dựng lại là đúng trong ba trường hợp: khóa CA bị xâm phạm, trạng thái phát hành mất không cứu được, hoặc bạn chủ động đổi thuật toán khóa hay chính sách chứng chỉ. Cả ba là dự án cần kế hoạch đăng ký lại cho từng máy khách, không phải các bước trong một yêu cầu cho một thiết bị. Nếu không trường hợp nào đúng, hãy đăng ký tăng thêm và để nhà phát hành yên.

Bài viết liên quan