在我的桌面应用程序中,我使用HTTPS连接。证书是自签名的。 我如何以编程方式检查 c#中的自签名证书?
我使我成为一个回调“ValidateRemoteCertificate”:
ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate)
默认情况下,我的“ValidateRemoteCertificate”方法始终返回TRUE。 但我认为我需要检查此证书的有效或无效。 怎么检查?我必须在“ValidateRemoteCertificate”中查看什么?
答案 0 :(得分:0)
由于您已经实现了回调,因此您知道回调委托的签名
public delegate bool RemoteCertificateValidationCallback(
Object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
如果我理解正确,客户端没有在他的商店安装证书,对吗?虽然我建议您按顺序获取基础架构并部署有效证书,但在您的情况下,您可以将证书的哈希/指纹与存储在应用程序中的值进行比较,以验证证书的有效性。