我的服务器上安装了给定的证书。该证书具有有效日期,并且在 Windows 证书 MMC 管理单元中似乎完全有效。
但是,当我尝试读取证书时,为了在 HttpRequest 中使用它,我找不到它。这是使用的代码:
X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly); X509Certificate2Collection col =
store.Certificates.Find(X509FindType.FindBySerialNumber, "xxx", true);
xxx
是序列号;该参数的true
意思是“只有有效的证书”。返回的集合为空。
奇怪的是,如果我通过了false
,表明可以接受无效证书,则该集合包含一个元素——具有指定序列号的证书。
结论:证书看似有效,但该Find
方法将其视为无效!为什么?