我有以下情况:
我从CA收到证书,我也有CA的公钥,我想用它来验证证书的有效性。
现在我们使用第三方库SecureBlackBox,但我们希望摆脱项目中的商业依赖。 SBB的工作原理如下:
cert.ValidateWithCA(CACertificate);
有没有办法用提供的X509Certificate2 .NET类做到这一点? 我发现方法Verify()不带任何参数,但我不确定它的作用......
谢谢
答案 0 :(得分:2)
如果不了解ValidateWithCA
所做的事情,我很难具体告诉你Verify
是否是一个完美的替代品。 Verify
最终调用pszPolicyOID
值为Verify
的本地CertVerifyCertificateChainPolicy
函数。验证不是简单地验证一个证书是否由另一个证书签名,它会检查其他内容,例如撤销任何证书在链内。
我建议您创建一系列测试,以验证ValidateWithCA
与ValidateWithCA
相比较有效。
阅读Verify
的文档后,将其记录为
验证由证书颁发机构签名的证书
这不像{{1}}那么彻底。由您来决定是否符合您的要求。如果不一定是您想要的,则可以设置ServicePointManager.ServerCertificateValidationCallback
回调,并在不需要相同级别的验证时提供自定义验证。