检查自签名证书(SSL,C#)

时间:2011-09-20 12:42:02

标签: c# ssl https

在我的桌面应用程序中,我使用HTTPS连接。证书是自签名的。 我如何以编程方式检查 c#中的自签名证书?

我使我成为一个回调“ValidateRemoteCertificate”:

 ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate)

默认情况下,我的“ValidateRemoteCertificate”方法始终返回TRUE。 但我认为我需要检查此证书的有效或无效。 怎么检查?我必须在“ValidateRemoteCertificate”中查看什么?

1 个答案:

答案 0 :(得分:0)

由于您已经实现了回调,因此您知道回调委托的签名

public delegate bool RemoteCertificateValidationCallback(
    Object sender,
    X509Certificate certificate,
    X509Chain chain,
    SslPolicyErrors sslPolicyErrors)

如果我理解正确,客户端没有在他的商店安装证书,对吗?虽然我建议您按顺序获取基础架构并部署有效证书,但在您的情况下,您可以将证书的哈希/指纹与存储在应用程序中的值进行比较,以验证证书的有效性。