我收到错误"InvalidBasicConstraints: A certificate's basic constraint extension has not been observed."
此证书是使用 OpenSSL 颁发的,将用作 WCF 服务的服务器端测试证书(在验证证书时会出现相同的错误)。我可以用这段代码复制错误。
X509Certificate2 cert = new X509Certificate2(@"c:\test.cer");
X509Chain chain = X509Chain.Create();
X509ChainPolicy policy = new X509ChainPolicy();
policy.RevocationMode = X509RevocationMode.NoCheck;
chain.ChainPolicy = policy;
bool valid = chain.Build(cert);
Console.WriteLine(string.Join(" -- ", chain.ChainStatus.Select(o => o.Status + ": " + o.StatusInformation)));
Console.WriteLine(valid ? "VALID" : "NOT VALID");
查看证书我可以看到这些基本约束,
Subject Type=End Entity
Path Length Constraint=None
这个错误是什么意思,我该如何解决?
我发现的关于基本约束的最相关文章是这篇,http://unitstep.net/blog/2009/03/16/using-the-basic-constraints-extension-in-x509-v3-certificates-for-intermediate -cas/但是它只谈论禁止子证书签署/创建更多子证书,在我的情况下我并没有尝试这样做。
此外,任何解释上述基本约束含义的参考资料都会有所帮助。