什么是ServicePointManager.ServerCertificateValidationCallback

时间:2014-10-15 15:24:48

标签: ssl https ssl-certificate x509certificate

我在我的网站上使用网络服务。提供者为我提供了一个示例代码,在代码中有一行如下:

// For Ignore SSL Error
ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };

Web服务将用户链接到自己的页面,然后返回到我的网站。它使用 https

这个代码应用程序是什么?是否忽略用户中的认证错误 网络浏览器?

我认为网站服务器网站的认证可能不是有效认证,或者只是本地认证。我是对的吗?

感谢。

1 个答案:

答案 0 :(得分:5)

通常认为它仅用于绕过无效的SSL证书。但是,许多人仅使用此回调来忽略无效证书。

此回调提供了附加SSL证书附加检查的功能,否则无法访问访问信息。例如,只有在此回调中,您才能获得无法在外部处理的特定证书错误:名称匹配/不匹配(它们存储在sslPolicyErrors参数中。此外,chain参数包含已发送的确切证书链服务器。当系统存储缺少中间CA证书时,此对象可用于构造证书链。

例如,当您从Thawte(或其他提供商)购买证书时,其证书没有“证书颁发机构颁发者”访问方法,并且系统存储中未安装中间证书。在这种情况下,您将无法为该证书构建链。但是,Web浏览器不会抱怨,因为缺少(在客户端上)证书是从Web服务器的SSL握手中发送的。而这个回调是访问它们的唯一方法。

我不会在生产环境中绕过SSL错误,因为它会打开安全漏洞。