Tôi có một chứng chỉ nhất định được cài đặt trên máy chủ của mình. Chứng chỉ đó có ngày hợp lệ và có vẻ hoàn toàn hợp lệ trong snap-in MMC của chứng chỉ Windows.Tại sao chứng chỉ X.509 này bị coi là không hợp lệ?
Tuy nhiên, khi tôi cố gắng đọc chứng chỉ, để sử dụng nó trong một HttpRequest, tôi không thể tìm thấy nó. Đây là mã được sử dụng:
X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly); X509Certificate2Collection col =
store.Certificates.Find(X509FindType.FindBySerialNumber, "xxx", true);
xxx
là số sê-ri; đối số true
có nghĩa là "chỉ các chứng chỉ hợp lệ". Bộ sưu tập được trả về trống.
Điều lạ lùng là nếu tôi vượt qua false
, cho biết chứng chỉ không hợp lệ có thể chấp nhận được, bộ sưu tập chứa một phần tử — chứng chỉ với số sê-ri được chỉ định.
Kết luận: chứng chỉ có vẻ hợp lệ, nhưng phương pháp Find
coi nó là không hợp lệ! Tại sao?
Chuỗi chứng nhận có mặt, nhưng bằng cách nào đó người dùng này không thể truy cập được. Tôi đã sử dụng mã mẫu này từ MSDN để kiểm tra trạng thái chuỗi: http://tinyurl.com/4wfnng. Mã này lấy lại trạng thái khác nhau tùy thuộc vào người dùng. Tôi sẽ cố gắng cài đặt lại chứng chỉ. Cảm ơn. – pvieira