.NET的SSL通讯过程当中,使用的证书可能存在各类问题,某种状况下能够忽略证书的错误继续访问。能够用下面的方式跳过服务器证书验证,完成正常通讯。服务器
1.设置回调属性ServicePointManager.ServerCertificateValidationCallback函数
注:这个属性设置为要用于客户端的服务器证书的自定义验证方法spa
True:认证成功; False:认证失败。code
C#代码 blog
1 ServicePointManager.ServerCertificateValidationCallback = 2 new RemoteCertificateValidationCallback( 3 OnRemoteCertificateValidationCallback);
VB.NET代码ssl
1 ServicePointManager.ServerCertificateValidationCallback = _ 2 New RemoteCertificateValidationCallback( _ 3 AddressOf OnRemoteCertificateValidationCallback)
2.把证书认证函数OnRemoteCertificateValidationCallback返回值Trueio
C#代码class
1 // 忽略证书认证错误处理的函数 2 private bool OnRemoteCertificateValidationCallback( 3 Object sender, 4 X509Certificate certificate, 5 X509Chain chain, 6 SslPolicyErrors sslPolicyErrors) 7 { 8 return true; // 认证正常,没有错误 9 }
VB.NET代码方法
' 忽略证书认证错误处理的函数 Private Function OnRemoteCertificateValidationCallback( _ ByVal sender As Object, _ ByVal certificate As X509Certificate, _ ByVal chain As X509Chain, _ ByVal sslPolicyErrors As SslPolicyErrors _ ) As Boolean Return True ' 认证正常,没有错误
End Function