0

我有以下情况:

我收到了来自 CA 的证书,并且我还拥有 CA 的公钥,我想用它来验证证书的有效性。

现在我们使用第三方库 SecureBlackBox,但我们希望摆脱项目中的商业依赖。使用 SBB,它的工作方式如下:

cert.ValidateWithCA(CACertificate);

有没有办法使用提供的 X509Certificate2 .NET 类来做到这一点?我找到了没有参数的方法 Verify(),但我不确定它的作用......

谢谢

4

1 回答 1

2

如果不知道更多关于做什么ValidateWithCA 真的很难具体告诉你是否Verify是一个完美的替代品。 Verify最终调用值为 1 的本机CertVerifyCertificateChainPolicy函数pszPolicyOID。验证不只是验证一个证书是否由另一个证书签名,它还会检查其他事情,例如撤销链中的任何证书。

我建议您创建一系列测试来验证VerifyValidateWithCA.

更新:

阅读文档后ValidateWithCA,它被记录为

验证由证书颁发机构签署的证书

这不如Verify. 由您决定该级别的验证是否是您想要的。如果不一定是你想要的,ServicePointManager.ServerCertificateValidationCallback如果你不需要同级别的验证,你可以设置回调并提供自定义验证。

于 2013-08-12T15:08:41.797 回答