サーバーに特定の証明書がインストールされています。その証明書には有効な日付があり、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
、無効な証明書が受け入れられることを示す を渡すと、コレクションには 1 つの要素 (指定されたシリアル番号を持つ証明書) が含まれます。
結論として、証明書は有効に見えますが、Find
メソッドはそれを無効として扱います! なんで?