Ứng dụng VPN của bạn báo không thể xác minh chứng chỉ, và hộp thoại dừng ở đó. Tệp vẫn có, máy chủ vẫn chạy, và cùng hồ sơ đó đã hoạt động trên một máy tính xách tay khác vào tháng trước. Bên dưới dòng cảnh báo một dòng ấy, ứng dụng đã đưa chứng chỉ của đối tác qua bốn cổng: tổ chức phát hành chứng chỉ bạn đã cấu hình bảo lãnh đường dẫn chữ ký, đường dẫn đó tới được tổ chức, tên đối tác là tên bạn yêu cầu, và chứng chỉ hiện dùng được cho mục đích này. Hãy tìm cổng đã đóng và cách sửa thường chỉ là một tệp; bỏ qua bước đó thì bạn sẽ nhập lại gói suốt buổi chiều.

Đọc hộp thoại trước khi sửa hồ sơ

Thông báo lỗi chứng chỉ do thư viện bên dưới soạn, không phải sản phẩm VPN bạn đã cài, nên chuỗi chính xác là bằng chứng đầu tiên của bạn. «Không lấy được chứng chỉ của nhà phát hành cục bộ» chỉ vào đường dẫn hoặc vào mốc tin cậy. «Chứng chỉ đã hết hạn hoặc chưa có hiệu lực» chỉ vào thời gian. «Mục đích chứng chỉ không được hỗ trợ» chỉ vào việc dùng khóa mở rộng. Sự không khớp tên cho bạn biết tên nào được yêu cầu. Không mục nào trong bốn mục này được sửa bằng cách cài lại ứng dụng.

Tăng mức ghi nhật ký trước khi thay đổi bất cứ điều gì. OpenVPN báo lỗi xác minh quanh bắt tay khi bạn chạy nó với --verb 4, và strongSwan ghi các quyết định về danh tính và chuỗi vào nhật ký charon. Sau đó xác nhận bạn đang kiểm tra chứng chỉ nào, vì người ta thường thử tệp trên đĩa trong khi hồ sơ nhúng một bản cũ hơn. Khi hồ sơ nhúng các khối PEM, chứng chỉ được nhúng chính là chứng chỉ được kiểm tra.

Tổ chức phát hành chứng chỉ ký danh tính, không ký quyền

Tổ chức nắm một tên và một khóa ký. Tổ chức phát hành các chứng chỉ gắn khóa công khai với tên đó theo chính sách của mình, kèm theo cửa sổ hiệu lực và các ràng buộc sử dụng. Ứng dụng của bạn chỉ cần chứng chỉ của tổ chức để nhận ra nhà phát hành; nó không bao giờ cần khóa ký, và gửi khóa đó cho ứng dụng sẽ trao cho họ khả năng tạo ra bất kỳ danh tính nào mà triển khai tin cậy.

Tin một tổ chức khiến mọi chứng chỉ tổ chức đó ký đều trở thành ứng viên, chứ không phải đối tác đúng. Chứng chỉ máy chủ web từ cùng CA nội bộ cũng là ứng viên. Đó là lý do có các cổng tên và mục đích, và là lý do khóa CA bị xâm phạm quan trọng hơn bất kỳ máy chủ riêng lẻ nào: nó chạm tới mọi danh tính mà tổ chức từng phát hành. Hãy cấp chứng chỉ ứng dụng theo từng thiết bị, để một máy tính xách tay bị mất là một lần thu hồi chứ không phải một lần tạo lại khóa cho toàn bộ triển khai.

Dựng lại đường dẫn mà ứng dụng đang cố xây

Đường dẫn chạy từ chứng chỉ của đối tác, qua không hoặc nhiều chứng chỉ trung gian, tới một gốc trong kho tin cậy của bạn. Thiếu chứng chỉ trung gian là lỗi chuỗi phổ biến nhất, và từ phía ứng dụng nó trông y hệt một gốc không đáng tin. Hãy đọc lá trước, rồi để OpenSSL dựng đường dẫn từ vật liệu bạn định gửi.

openssl x509 -in server.crt -noout -subject -issuer -dates
openssl verify -CAfile root.crt -untrusted intermediate.crt server.crt
openssl verify -show_chain -CAfile root.crt -untrusted intermediate.crt server.crt

Trạng thái thoát bằng không nghĩa là đường dẫn đã được dựng từ những tệp đó; thất bại nêu tên chứng chỉ mà nó không tới được. Nếu openssl verify thành công trong khi ứng dụng vẫn từ chối, khác biệt nằm ở thứ máy chủ thực sự gửi hoặc ở tệp tin cậy mà hồ sơ tải. Trong OpenVPN, chứng chỉ trung gian có thể đi cùng tệp chứng chỉ máy chủ hoặc được cung cấp riêng bằng --extra-certs, và một gói chứa hai gốc viết dưới cùng tên chủ thể sẽ đưa một trong các ứng dụng của bạn vào nhánh sai.

Tên và mục đích là hai cổng riêng

Việc xây chuỗi không bao giờ hỏi tên đó có phải của bạn không. OpenVPN chỉ kiểm tra khi hồ sơ đặt --verify-x509-name, và thói quen cũ chỉ khớp tên chung sẽ vỡ trên những chứng chỉ có danh tính sống trong subjectAltName. Các triển khai IKEv2 khớp danh tính đã cấu hình với các mục SAN hoặc với tên phân biệt, tùy ứng dụng, và một giá trị ký tự đại diện hoặc %any âm thầm tắt phép so sánh mà bạn tưởng mình có.

Tiếp theo là thời gian và mục đích. Một máy tính xách tay có đồng hồ chạy nhanh vài giờ sẽ từ chối chứng chỉ chưa có hiệu lực, và một chứng chỉ trung gian hết hạn làm hỏng đường dẫn trong khi lá vẫn còn hiệu lực. Lỗi mục đích đến từ chứng chỉ không có serverAuth trong mục đích sử dụng khóa mở rộng, hoặc có keyUsage không cho phép chữ ký bắt tay, điều OpenSSL báo là mục đích chứng chỉ không được hỗ trợ. Hãy phát hành lại từ mẫu đúng; không có gì trong thông báo đó là lý do để tắt xác minh.

Thu hồi chỉ chạy nếu ai đó đã cấu hình nó

CRL hay phản hồi OCSP không được tra cứu tự động. Trên máy chủ OpenVPN, chứng chỉ ứng dụng chỉ được đối chiếu với danh sách khi --crl-verify trỏ tới một danh sách. Việc kiểm tra chứng chỉ máy chủ ở phía ứng dụng phụ thuộc vào cách hiện thực và thường không có. strongSwan cần plugin thu hồi và một chính sách trước khi xem CRL cho một đối tác.

Điều đó giải thích phiếu hỗ trợ mà cuối cùng bạn sẽ nhận: một chứng chỉ ứng dụng đã bị thu hồi vẫn kết nối được, và mọi người kết luận rằng việc thu hồi hỏng. Không có gì đang kiểm tra cả. Hãy công bố và làm mới CRL, hoặc giữ chứng chỉ ứng dụng đủ ngắn hạn để một lần thu hồi cũ chỉ có ý nghĩa trong thời gian ngắn, và tập dượt đường dẫn thu hồi trên một chứng chỉ phòng thí nghiệm trước khi cần đến nó trong một sự cố.

Một thứ tự sửa chữa giữ cho xác minh vẫn bật

Sắp xếp theo triệu chứng trước khi chạm vào tệp, vì mỗi hàng của bảng đưa bạn tới một đối tượng khác.

Client saysMost likely gateFirst check
unable to get local issuer certificatetrust anchor or missing intermediateyour own openssl verify against the files the profile loads
expired or not yet validvalidity windowleaf and intermediate dates against the device clock
unsupported certificate purposeextended key usageserverAuth present, keyUsage allows the handshake
name mismatchpeer identitysubjectAltName entries versus the profile name

Đi hết danh sách trong một lượt: xác nhận tệp mà hồ sơ tải, tự dựng đường dẫn, kiểm tra máy chủ có gửi chứng chỉ trung gian không, so đồng hồ, đọc SAN, đọc EKU, rồi kết nối lại và xem dòng nhật ký y hệt biến mất. Nếu một thiết bị hoàn toàn không thể được cấp CA, ghim là lựa chọn trung thực, vì OpenVPN 2.6 chấp nhận --peer-fingerprint và thu hẹp tin cậy vào một khóa thay vì gỡ bỏ việc kiểm tra. RFC 5280 là tài liệu tham chiếu cho ý nghĩa của từng trường đó.

Bài viết liên quan