我在我的网站上使用网络服务。提供者为我提供了一个示例代码,在代码中有一行如下:
// For Ignore SSL Error
ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
Web服务将用户链接到自己的页面,然后返回到我的网站。它使用 https 。
这个代码应用程序是什么?是否忽略用户中的认证错误 网络浏览器?
我认为网站服务器网站的认证可能不是有效认证,或者只是本地认证。我是对的吗?
感谢。
答案 0 :(得分:5)
通常认为它仅用于绕过无效的SSL证书。但是,许多人仅使用此回调来忽略无效证书。
此回调提供了附加SSL证书附加检查的功能,否则无法访问访问信息。例如,只有在此回调中,您才能获得无法在外部处理的特定证书错误:名称匹配/不匹配(它们存储在sslPolicyErrors
参数中。此外,chain
参数包含已发送的确切证书链服务器。当系统存储缺少中间CA证书时,此对象可用于构造证书链。
例如,当您从Thawte(或其他提供商)购买证书时,其证书没有“证书颁发机构颁发者”访问方法,并且系统存储中未安装中间证书。在这种情况下,您将无法为该证书构建链。但是,Web浏览器不会抱怨,因为缺少(在客户端上)证书是从Web服务器的SSL握手中发送的。而这个回调是访问它们的唯一方法。
我不会在生产环境中绕过SSL错误,因为它会打开安全漏洞。