Chứng chỉ có thể vẫn nằm trong thời hạn hiệu lực mà VPN vẫn báo lỗi xác thực, và ai đó kết luận rằng chứng chỉ đã bị thu hồi. Đó là ba sự thật khác nhau. Dữ liệu thu hồi phải do thiết bị thực hiện xác thực tải về, từ một điểm công bố được nêu trong chính chứng chỉ. Khi thiết bị đó không tới được điểm công bố, việc kiểm tra thất bại vì những lý do không liên quan đến trạng thái của chứng chỉ.

Bên xác thực sở hữu đường tải

Hãy bắt đầu bằng việc xác định bên xác thực. Khi một máy tính xách tay kiểm tra chứng chỉ của cổng, máy tính xách tay tải dữ liệu; khi cổng kiểm tra chứng chỉ của máy khách, cổng thực hiện việc đó. Một dịch vụ xác thực ở phần phía sau có thể thêm bên xác thực thứ ba với vị trí mạng riêng. Mỗi bên có một đường tới internet và một cấu hình proxy khác nhau. Bằng chứng thu thập trên máy trạm của quản trị viên không nói gì về một máy chủ bên trong DMZ.

Ghi lại chứng chỉ, bên xác thực, thời điểm thử và mã trạng thái chính xác trước khi thay đổi bất cứ điều gì.

Đọc điểm công bố từ chứng chỉ

Chứng chỉ nêu nơi trạng thái của nó nằm. Hãy đọc các trường đó thay vì đoán một địa chỉ CA.

openssl x509 -in gateway.cer -noout -text | grep -A3 "CRL Distribution Points"
openssl x509 -in gateway.cer -noout -text | grep -A2 "Authority Information Access"

Phần mở rộng thứ nhất liệt kê các điểm phân phối CRL, phần thứ hai liệt kê các phương thức truy cập thông tin nhà phát hành, có thể bao gồm trạng thái OCSP và việc tải chứng chỉ của nhà phát hành. Đây là những cơ chế khác nhau, và một bộ trả lời OCSP không phải là tệp CRL. Máy công bố thường là một máy chủ web thông thường chứ không phải máy CA, vì nhà phát hành ngoại tuyến có thể ký một CRL mà máy chủ khác phân phối. Vì vậy một quy tắc tường lửa được mô tả là truy cập CA là quá mơ hồ để triển khai hoặc xem xét.

Kiểm tra việc tải từ thiết bị thực hiện xác thực

Chạy bài kiểm tra tải trong môi trường thực sự thực hiện xác thực, với vật liệu chứng chỉ đã được phê duyệt và không có khóa riêng.

certutil -urlfetch -verify .\client-test.cer
curl -sS -o /dev/null -w "%{http_code}\n" http://crl.example.com/ca.crl

Lần chạy certutil xác minh chuỗi và báo cáo những lần tải URL thành công hay thất bại, còn lệnh curl kiểm tra một địa chỉ công bố từ cùng máy đó và chỉ trả về một mã trạng thái. Tải thất bại từ một địa chỉ tới được cho thấy vấn đề về nội dung hoặc chữ ký; lỗi kết nối cho thấy vấn đề định tuyến, DNS hoặc proxy. Hãy giữ cả hai kết quả, vì một lần tải thành công không chứng minh toàn bộ chuỗi dùng được. Thay máy và đường dẫn trong ví dụ bằng điểm phân phối tìm thấy trong chứng chỉ.

Phân biệt dữ liệu thiếu với trạng thái bị thu hồi

Bốn kết cục trông giống nhau từ bên ngoài: điểm không tới được, danh sách đã cũ, danh sách bị ký bởi nhà phát hành sai, hoặc chứng chỉ thực sự bị thu hồi. Chỉ kết cục cuối là kết quả trạng thái, và chỉ nó mới biện minh cho việc gỡ quyền truy cập. Bộ nhớ đệm càng làm bức tranh phức tạp hơn, vì dữ liệu tải trước có thể che giấu một đường công bố hỏng cho tới lần làm mới tiếp theo. Tắt kiểm tra thu hồi, xóa các chứng chỉ không liên quan hoặc khởi động lại cổng đều thay chẩn đoán bằng hoạt động.

Sau khi sửa, hãy buộc một lần xác thực mới và xác nhận rằng việc tải trạng thái dự kiến thành công. Ở nơi có danh tính thử nghiệm được kiểm soát, hãy xác nhận nó vẫn bị từ chối, vì khả năng sẵn sàng loại bỏ việc kiểm tra không phải là sửa chữa.

Bài viết liên quan