2010-08-31 51 views
7

Tôi phải viết một công cụ xác nhận nếu chứng chỉ X509 có hiệu lực hay không (đường dẫn đầu vào = cert/chủ đề và mật khẩu). Làm thế nào tôi có thể làm điều đó? Tôi không biết nhiều về certs ...Làm cách nào để xác thực chứng chỉ X509?

+0

Chứng chỉ X.509 không được bảo vệ bằng mật khẩu (khóa riêng tương ứng thường là). Nếu bạn đã có đường dẫn chứng nhận, hầu hết công việc được thực hiện (nếu bạn tin tưởng vào neo tin cậy mà đường dẫn cert đó dẫn đến). – Bruno

+0

@Bruno: xác thực chứng chỉ hợp lệ là "một chút" nhiều hơn là chỉ kiểm tra chữ ký. Thời gian sử dụng khóa, thời hạn hiệu lực, ràng buộc đường dẫn cũng phải được kiểm tra. Sau đó, việc thu hồi (sử dụng OCSP và CRL) phải được kiểm tra. Và cứ như vậy ... –

Trả lời

16
+2

Để thêm, nếu bạn cần chi tiết về lý do chứng chỉ không thành công, bạn có thể xuất chuỗi: http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509chain.aspx – Oliver

2

Nói chung, RFC 3280 bao gồm các hướng dẫn gần như hoàn chỉnh về cách thực hiện xác thực, tuy nhiên các hướng dẫn đó rất không nhỏ. Ngoài ra, bạn cần phải đọc RFC 2560 (OCSP) và triển khai thực hiện OCSP client.

Đối với hầu hết các tác vụ, bạn sẽ tìm thấy TElX509CertificateValidator component hoàn toàn phù hợp của chúng tôi. Nó kiểm tra các đường dẫn chứng chỉ, thu hồi CRL và OCSP (và kiểm tra tính hợp lệ của các đáp ứng CRL và OCSP). Nó đủ linh hoạt và mạnh mẽ và cho phép bạn thực hiện các kiểm tra bổ sung, sâu hơn trên mỗi bước. Ngoài ra thành phần này có thể làm việc với cả kho lưu trữ chứng chỉ Windows và bất kỳ chứng chỉ nào khác, chuỗi chứng chỉ và kho lưu trữ mà bạn có thể có trong tệp hoặc trong bộ nhớ.

+2

RFC 3280 đã bị lỗi thời bởi RFC 5280: http://tools.ietf.org/html/rfc5280 – Bruno

+0

Điểm tốt, cảm ơn bạn. –

Các vấn đề liên quan