Des*_*tar 2 .net c# wcf certificate x509certificate
我收到错误"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");
Run Code Online (Sandbox Code Playgroud)
查看证书我可以看到这些基本约束,
Subject Type=End Entity
Path Length Constraint=None
Run Code Online (Sandbox Code Playgroud)
这个错误意味着什么,我该如何解决?
我在基本约束条件上找到的最相关的文章就是这篇文章,http://unitstep.net/blog/2009/03/16/using-the-basic-constraints-extension-in-x509-v3-certificates-for-intermediate -cas /然而它只谈到禁止儿童证书签署/创建更多儿童证书,在我的情况下,我不是想做.
此外,任何解释上述基本约束意味着什么的参考都会有所帮助.
阅读上面的帖子后,我看到有两种不同的主题类型,
Basic Constraints: Subject Type=CA, Length Constraint=None
Basic Constraints: Subject Type=End Entity, Path Length Constraint=None
Run Code Online (Sandbox Code Playgroud)
我正在使用的服务器端证书实际上是一个层次结构中的第三个链接.
A - > B - > C ....发行B然后签发C.
证书B也有Subject Type=End Entity基本约束.我找不到任何说明不同类型的基本约束或其含义的文档,但根据上述两种类型的不同,我会说这End Entity意味着它不能颁发证书.这是链条的终点,而不是Subject Type=CA.
当.NET验证链时,它看到B没有来自它的父证书的许可来颁发证书并抛出错误,A certificate's basic constraint extension has not been observed.
编辑:使用由自签名证书颁发的新证书进一步测试验证上述理论.
| 归档时间: |
|
| 查看次数: |
4732 次 |
| 最近记录: |