我必须检查特定的证书。不幸的是我不知道如何实现这一点。我想要验证的证书是由我自己的 ca 签名的。我需要检查整个证书链。验证应在 C# 内完成。
亲切的问候, 迈克尔
最佳答案
如果您想做所有事情,包括在代码中验证链,那么您需要 implement "custom validation" and integrate that into the WCF Host :
Client.ServiceCertificate.Authentication.CertificateValidationMode =
X509CertificateValidationMode.Custom;
Client.ServiceCertificate.Authentication.CustomCertificateValidator =
new MyCertificateValidator();
要亲自验证链,您应该查看 X509Chain和 X509Store - 要了解如何实现这样的链验证,请查看 Mono's implementation Verify
的...基本上,您使用 Find
方法来搜索 X509Certificate2Collection对于 parent 等等...自定义验证的验证标准取决于您(有效签名,未过期...)。
MSDN 上的一些引用链接:
关于c# - WCF 中的证书验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9464838/