Đăng nhập VPN mới thất bại trong khi chứng chỉ vẫn hợp lệ: hãy kiểm tra CRL
Chứng chỉ máy khách hợp lệ và danh sách thu hồi đã hết hạn là hai đối tượng khác nhau trên hai đồng hồ khác nhau. Hãy đọc danh sách mà máy chủ tải, rồi tạo lại nó.
Những chứng chỉ còn vài tháng và những lần đăng nhập thất bại ngay lập tức chỉ về hai đối tượng khác nhau trên hai đồng hồ khác nhau. Máy chủ từ chối các kết nối vì danh sách chứng chỉ bị thu hồi mà nó tham chiếu đã vượt quá ngày hết hạn của chính nó, chứ không phải vì chứng chỉ của người dùng đã cũ. Việc gia hạn chứng chỉ người dùng không làm gì cho danh sách đó.
Tách hai lịch trình ra chính là toàn bộ việc chẩn đoán, và nó thay đổi bản sửa lỗi phải trông như thế nào.
Hai đồng hồ, và chỉ một trong số chúng là chứng chỉ
Một chứng chỉ mang theo một cửa sổ hiệu lực. Một danh sách thu hồi chứng chỉ mang theo cửa sổ riêng của nó, cộng thêm một nhà phát hành và một chữ ký, và các trình xác minh từ chối tin tưởng một danh sách đã qua thời điểm cập nhật tiếp theo. Khi điều đó xảy ra, máy khách trình ra một chứng chỉ hoàn toàn hợp lệ và máy chủ vẫn cắt kết nối với một thông báo về danh sách. Người dùng đọc thông báo đó là 'chứng chỉ đã hết hạn', khiến yêu cầu gia hạn đi nhầm chỗ.
Hai đối tượng cũng có chủ sở hữu khác nhau: chứng chỉ đến từ CA đã phát hành nó, trong khi danh sách được tạo theo lịch trình bởi người vận hành CA đó. Người dùng không thể làm mới nó, và việc phát hành lại chứng chỉ không thể kéo dài nó.
Đọc danh sách mà dịch vụ thực sự tải
Hãy bắt đầu từ cấu hình đang chạy, không phải từ tệp mà bạn mong đợi. Đường dẫn crl-verify có thể là tuyệt đối, tương đối so với hồ sơ, hoặc một bản sao được nhúng vào ảnh, và trình xác minh đọc bản sao đó. Hãy xem nó tại chỗ bằng openssl crl -in /etc/openvpn/crl.pem -noout -issuer -lastupdate -nextupdate và so sánh các ngày với đồng hồ của máy chủ.
Sau đó xác nhận rằng tệp thực sự là tệp đang được dùng: kiểm tra chữ ký của nó bằng openssl crl -in /etc/openvpn/crl.pem -CAfile /etc/openvpn/ca.crt -noout, lệnh này báo cáo kết quả xác minh thay vì lặng lẽ in ra các trường. Một danh sách được ký bởi CA khác, hoặc một bản sao cũ còn sót lại trong thư mục thứ hai, thất bại đúng như một danh sách đã hết hạn.
Tạo lại từ cơ sở dữ liệu thu hồi, không phải từ đầu
Danh sách mới phải đến từ cơ sở dữ liệu thu hồi hiện tại của CA, thông qua quy trình ký đã được phê duyệt. Tạo một danh sách rỗng, hoặc tạo lại từ một bản sao lưu cũ của chỉ mục, sẽ lặng lẽ bỏ thu hồi mọi danh tính được thêm vào kể từ bản sao lưu đó. Điều đó biến một sự cố đăng nhập thành một bước thoái lui về bảo mật, và không ai nhận ra vì triệu chứng biến mất.
Giữ bước tạo trong kiểm soát phiên bản cùng với phần còn lại của công cụ CA, để khoảng thời gian và khóa ký được ghi lại thay vì ghi nhớ. Một mục trong sổ tay vận hành nêu tên lệnh, người ký và mục tiêu xuất bản là đủ. Bất kỳ ai trong ca trực sau đó có thể tạo lại mà không phải đoán tệp chỉ mục nào là có thẩm quyền. Lưu số sê-ri và thời điểm cập nhật tiếp theo của danh sách cùng với hồ sơ triển khai.
Triển khai ở nơi trình xác minh nhìn vào
Sao chép danh sách mới vào đường dẫn mà dịch vụ đọc, đặt quyền sở hữu và chế độ để tài khoản dịch vụ đọc được nhưng người khác thì không, rồi tải lại hoặc khởi động lại theo hành vi đã ghi trong tài liệu. Nếu dịch vụ nền lưu danh sách vào bộ nhớ đệm khi khởi động, việc thay tệp mà không tải lại sẽ không thay đổi gì mà tiến trình đang chạy nhận ra. Xác nhận dấu thời gian mà tiến trình báo cáo sau khi tải lại.
Nếu nhiều dịch vụ xác minh máy khách, hãy triển khai cho từng dịch vụ. Việc cập nhật một điểm cuối và để điểm khác với bản sao cũ tạo ra lỗi chỉ xuất hiện với những người dùng rơi vào điểm thứ hai. Giữ một danh sách ngắn các điểm cuối đó trong cùng sổ tay vận hành. Sau khi triển khai, hãy kiểm tra ngày danh sách mà từng điểm báo cáo thay vì cho rằng bản sao đã đến nơi.
Làm cho hạn chót tiếp theo hiển thị trước khi nó qua đi
Khoảng thời gian xuất bản dài hơn làm giảm tần suất của sự cố này mà không tạo ra một quy trình. Chọn khoảng thời gian từ chính sách của người vận hành, sau đó đặt cảnh báo trên trường cập nhật tiếp theo của danh sách đã triển khai với đủ thời gian dẫn để tạo lại và triển khai. Hãy cảnh báo trên bản sao đã triển khai, không phải trên máy chủ CA, vì bản sao đã triển khai mới là thứ thất bại.
Sau khi triển khai, hãy xác minh cả hai chiều: một người dùng được phép kết nối, và một danh tính đã bị thu hồi đã biết vẫn thất bại. Lần kiểm tra thứ hai là thứ bắt được một lần tạo lại không đầy đủ, và nó chỉ cần một lệnh đối với hồ sơ kiểm thử mà bạn giữ đúng cho mục đích này.