在我的桌面应用程序中,我使用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/