我有以下情况:
我收到了来自 CA 的证书,并且我还拥有 CA 的公钥,我想用它来验证证书的有效性。
现在我们使用第三方库 SecureBlackBox,但我们希望摆脱项目中的商业依赖。使用 SBB,它的工作方式如下:
cert.ValidateWithCA(CACertificate);
有没有办法使用提供的 X509Certificate2 .NET 类来做到这一点?我找到了没有参数的方法 Verify(),但我不确定它的作用......
谢谢
我有以下情况:
我收到了来自 CA 的证书,并且我还拥有 CA 的公钥,我想用它来验证证书的有效性。
现在我们使用第三方库 SecureBlackBox,但我们希望摆脱项目中的商业依赖。使用 SBB,它的工作方式如下:
cert.ValidateWithCA(CACertificate);
有没有办法使用提供的 X509Certificate2 .NET 类来做到这一点?我找到了没有参数的方法 Verify(),但我不确定它的作用......
谢谢
如果不知道更多关于做什么ValidateWithCA
,真的很难具体告诉你是否Verify
是一个完美的替代品。 Verify
最终调用值为 1 的本机CertVerifyCertificateChainPolicy
函数pszPolicyOID
。验证不只是验证一个证书是否由另一个证书签名,它还会检查其他事情,例如撤销链中的任何证书。
我建议您创建一系列测试来验证Verify
与ValidateWithCA
.
阅读文档后ValidateWithCA
,它被记录为
验证由证书颁发机构签署的证书
这不如Verify
. 由您决定该级别的验证是否是您想要的。如果不一定是你想要的,ServicePointManager.ServerCertificateValidationCallback
如果你不需要同级别的验证,你可以设置回调并提供自定义验证。