Chứng chỉ máy khách tự ký? Máy chủ VPN vẫn từ chối nó
Chứng chỉ máy khách phải chuỗi đến CA mà máy chủ tin cậy, và chứng chỉ tự ký sẽ không bao giờ làm được điều đó. Đây là những gì một CSR có thể làm và những gì bạn nên yêu cầu.
Nhà vận hành gửi một địa chỉ và tên người dùng, và máy khách yêu cầu tệp CA, chứng chỉ và khóa. Tạo ba thứ này cục bộ có vẻ là bước tiếp theo hiển nhiên. Kết quả là một chứng chỉ mà chỉ máy của bạn tin. Sự tin cậy của máy chủ neo vào một CA mà bạn không kiểm soát, nên bắt tay kết thúc trước khi bắt đầu.
Sự tin cậy sống trên máy chủ, không phải trong hồ sơ của bạn
Xác thực bằng chứng chỉ là một phép so sánh. Máy khách trình bày chứng chỉ; cổng kiểm tra xem nó có được ký bởi một trong các CA trong cấu hình của nó hay không.
Hồ sơ của bạn nêu tệp CA mà máy khách nên dùng để xác minh máy chủ. Nó không thể nêu một CA mà máy chủ nên dùng để xác minh bạn. Nửa cấu hình đó không phải của bạn.
Chứng chỉ do bạn tự làm sẽ thất bại trong phép so sánh này ngay cả khi nó hoàn hảo về mặt kỹ thuật. Nó có chữ ký hợp lệ, chủ thể và ngày tháng, nhưng nhà phát hành là một CA mà cổng chưa từng nghe tới. Lỗi xuất hiện trong quá trình bắt tay, sau khi máy chủ đã yêu cầu chứng chỉ. Không gì trong hồ sơ máy khách có thể thay đổi câu trả lời.
Vì sao chứng chỉ tự ký không thể thay thế
Chứng chỉ tự ký được ký bằng chính khóa của nó. Chữ ký được xác minh với cùng tệp, khiến nó tự nhất quán và vô dụng như một thông tin xác thực cho cổng của người khác.
Cổng không hỏi liệu chứng chỉ có nhất quán bên trong hay không. Nó hỏi liệu một nhà phát hành đáng tin cậy đã ký nó chưa.
Đó là lý do các thông báo lỗi gây khó hiểu. Máy khách có thể báo lỗi xác minh nghe như vấn đề của máy chủ, trong khi máy chủ ghi nhận một nhà phát hành không xác định. Cả hai mô tả cùng một sự không khớp từ hai đầu đối diện.
Con đường CSR giữ khóa riêng của bạn
Bạn vẫn có thể làm phần lớn công việc cục bộ. Tạo một cặp khóa, xây dựng yêu cầu ký chứng chỉ quanh nửa công khai và gửi yêu cầu đó cho nhà vận hành. Chỉ yêu cầu rời khỏi máy của bạn. Nửa riêng tư vẫn ở nơi bạn đã tạo nó.
openssl req -new -newkey rsa:3072 -nodes -keyout client.key -out client.csr -subj "/CN=laptop-01"
Nhà vận hành ký yêu cầu bằng CA của họ và trả lại một chứng chỉ. Khóa riêng của bạn chưa từng di chuyển, và kết quả chuỗi đến mỏ neo mà cổng tin cậy.
Các dịch vụ được quản lý thường bỏ qua CSR và phát hành toàn bộ gói. Đó là một trao đổi hợp lý khi cùng nhà cung cấp đã kết thúc đường hầm và giữ CA. Việc lưu giữ khóa không tốt hơn khi bạn giữ nó, vì nhà cung cấp có thể tạo khóa mới bất cứ lúc nào.
Gói được nhập, không được cài đặt
Gói của nhà cung cấp với tên nghe có vẻ bảo mật thường là hồ sơ OpenVPN. Chúng chứa cấu hình và đôi khi chứng chỉ, và chúng không cài đặt gì. Nhập tệp vào một máy khách nói giao thức đó, và kết nối được định cấu hình.
Quy tắc xử lý xuất phát từ nội dung. Nếu hồ sơ nhúng một khóa riêng, đó là thông tin xác thực và xứng đáng được chăm sóc như mật khẩu: không email, không kho lưu trữ, không thư mục tải xuống chia sẻ. Khi nhà vận hành cung cấp ca.crt, client.crt và client.key riêng lẻ, hãy lưu chúng cùng nhau với quyền hạn chế và trỏ hồ sơ đến chúng.
Thêm các kiểm tra mà nhà vận hành có thể đã bỏ qua
Hồ sơ do router tạo đôi khi thiếu xác minh ngang hàng. remote-cert-tls server yêu cầu chứng chỉ ngang hàng mang mục đích xác thực máy chủ, để chứng chỉ máy khách không thể bị phát lại như một máy chủ. Dòng đó là một thay đổi nhỏ với lý do rõ ràng.
verify-x509-name đi xa hơn khi nhà vận hành có thể nêu chủ thể hoặc SAN mong đợi. Cả hai đều là những bổ sung nhỏ cho hồ sơ, và cả hai đều có thể bảo vệ được. Kiểm tra những gì bạn nhận được trước khi nhập nó.
openssl x509 -in client.crt -noout -issuer -subject -dates
openssl verify -CAfile ca.crt client.crt
Cài đặt xác minh không phải là sửa chữa một chuỗi bị hỏng. Nếu nhà phát hành sai, câu trả lời là một chứng chỉ từ CA đúng, không phải một cờ tắt kiểm tra. Tắt xác minh biến lỗi xác thực thành lỗi không bị phát hiện.
Yêu cầu một gói duy nhất: chứng chỉ của cơ quan dưới dạng PEM, chứng chỉ máy khách do cơ quan đó ký, khóa bạn tự tạo hoặc đến qua một kênh bạn tin cậy, và tên máy chủ chính xác mà chứng chỉ phải trình bày. Ghi ngày hết hạn trong cùng thông điệp, vì chứng chỉ hết hạn trông như sự cố mạng nhiều tháng sau đó.