禁用单个请求的证书验证

Jim*_*ott 5 c# system.net certificate smtpclient

在我的应用程序中,我遇到需要向具有自签名证书的服务器发出请求的情况.我希望能够仅针对该特定请求禁用证书验证.

我知道我可以通过将ServicePointManager.ServerCertificateValidationCallback设置为指向回调方法并简单地返回true来禁用证书验证.然而,这会禁用整个应用程序的证书验证,我可以通过在app.config中设置来完成.

但是,我不想为整个应用程序禁用,而是禁用单个请求.那可能吗?

我正在使用的课程是SmtpClient

Rob*_*ert 0

禁用证书验证通常是一个坏主意。为什么不简单地将自定义证书添加为系统或应用程序中的受信任证书。

AFAIR 这可以通过实现您自己的X509CertificateValidator来完成。只需将自定义证书嵌入到您的应用程序中,然后在 X509CertificateValidator 中比较两者是否相等。

另请参阅:我的自定义 SSL 验证逻辑处理异常 RemoteCertificateNameMismatch 的安全性如何?