我在Windows上使用.NET (实际上是C#)代码,我得到了一个SSL服务器证书S (拇指指纹或整个公共部分)。现在我想知道( .NET代码):
运行在此系统上的.NET代码会信任此服务器证书X吗?
例如,如果在此系统上创建一个System.Net.WebClient并将其指向使用该服务器证书的HTTPS,那么它会被信任吗?
我知道我可以查看Windows (本地计算机、->、可信根证书颁发机构等)。并试图计算X是否可信,还查看中间权威机构、证书链等。但是我不知道具体实现什么算法,所以我非常喜欢重用.NET已经使用的算法。
(澄清一下,这是在安装程序类型的程序中,其中使用证书X的服务器还没有实际可用,否则我就可以对这样的服务器进行测试调用,并查看是否存在信任错误结果。)
发布于 2014-03-12 09:02:41
您是否拥有完整的SSL证书或仅拥有其拇指指纹/公钥?
要检查一个证书的信任,您需要构建到根CA的整个链,并且这个根CA需要位于受信任的根存储区(LocalMachine或CurrentUser)。但是,如果没有作为x509的SSL证书,或者不知道它的发行者,这是不可能的。
如果您拥有SSL证书,则可以使用X509Chain类及其构建方法构建链。然后检查ChainStatus以获得链状态的详细错误信息。
https://stackoverflow.com/questions/22318941
复制相似问题