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

我使我回调“ ValidateRemoteCertificate”:

 ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate)


默认情况下,我的“ ValidateRemoteCertificate”方法始终返回TRUE。
但我认为我需要检查此证书是否有效。
如何检查?我必须在“ ValidateRemoteCertificate”中签入什么?

最佳答案

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

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


如果我对您的理解正确,那么客户端的商店中没有安装证书,对吗?尽管我建议您整理基础结构并部署有效的证书,但是您可以做的是将证书的哈希/指纹与存储在应用程序中的值进行比较,以验证证书的有效性。

关于c# - 检查自签名证书(SSL,C#),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7485313/

10-12 00:27
查看更多