Web客户端异常:底层连接已关闭:无法为SSL建立信任关系/TLS安全通道我有一个使用C#Web客户端类下载网站HTML的简单应用程序。这是我正在使用的代码的精简示例:WebClientwc=newWebClient();wc.Headers.Add("user-agent","Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.2;.NETCLR1.0.3705;)");htmlCode=wc.DownloadString("https://www.oig.hhs.gov/exclusions/exclusions_list.asp");网站证书似乎有问题,因为我收到此异常:底层连接已关闭:无法为SSL/TLS安全通道建立信任关系。”“根据验证程序,远程证书无效。如果您将链接复制并粘贴到您的浏览器中,则在允许您查看站点风险之前需要您的同意。这是一个政府网站,所以我不担心任何病毒或任何东西。有没有办法告诉网络客户端绕过这个问题并继续访问该站点?据我所知,这是因为他们使用的是无效或过期的SSL证书。您可以绕过(忽略)它:ServicePointManager.ServerCertificateValidationCallback+=(sender,certificate,chain,sslPolicyErrors)=>true;2015年编辑:这篇文章获得了很多赞成票,但我对自己的回答感到遗憾。它可能会消除您的错误,但不会解决问题。接受任何SSL证书都会使您容易受到中间人攻击,因此这通常是一个非常糟糕的主意。我会留下这个答案供将来参考,但请注意,您应该尝试从根本上解决问题,即确保SSL证书有效。试试这个:您想将证书安装到本地计算机。如果不在代码中,该过程将执行以下操作:在管理员模式下打开InternetExplorer(不是Chrome)。转到网站选择继续单击证书上的标题栏/url栏以查看证书。单击安装证书。因此,您可以尝试查看这些其他问题,看看它们是否对您有帮助:尝试安装证书,如果要求继续,请查看您是否再次访问该URL。****编辑**:我阅读了网站证书,这是因为证书与网站的网址不匹配。一个简单的更改是:htmlCode=wc.DownloadString("https://oig.hhs.gov/exclusions/exclusions_list.asp");只需删除www。为了进一步建立LeonCullens的回答,我提出以下建议。就像他在回答中所说的那样,这不应该是您作为永久解决方案所做的事情,但是如果您是故意遇到此错误,这可能会对您有所帮助。这应该为您别无选择而只需要它工作的情况增加一点安全性。我目前的情况是在开发过程中我需要使用自签名证书而不是真正的签名证书。这当然会导致以下错误...“基础连接已关闭:无法为SSL/TLS安全通道建立信任关系。”这就是我所做的,试图让它更安全,并尽可能避免“中间人攻击”。我试图让它尽可能简短,但我想确保我画出了整个画面以便于理解。使用系统;使用系统文本;使用System.Net;使用System.Net.Security;使用System.Security.Cryptography.X509Certificates;使用系统线程;namespaceTestSecurity{classTestDownload{privatevoidclient_DownloadProgressChanged(objectsender,DownloadProgressChangedEventArgse){//下载进度}privatevoidclient_DownloadDataCompleted(objectsender,DownloadDataCompletedEventArgse){//下载完成}privateboolclient_RemoteCertificateValidation(objectsender,X509Certificatecertificate,X509Chainchain,SslPolicyErrorssslPolicyErrors){if(sslPolicyErrors==SslPolicyErrors.RemoteCertificateChainErrors){//检查确保域正确X509Certificate2certificate_details=(X509Certificate2)certificate;if(certificate_details.Thumbprint=="91A92CA60555DB51BEDDFE1AE4ECE54C8EBEBA97"){#region证书字符串的指纹storedFingerprint=""+"42048c788db687ed84407da10f78182e3487d1fc31c07ee131151f4e19b360ad2a8c452c2e7d614a5691d5479787fe70dabd"+"64617465732e626c75656172726f77646576656c6f706d656e742e636f6d3110300e06035504080c0747656f72676961311f"+"301d060355040a0c16426c7565204172726f7720446576656c6f706d656e74310b3009060355040613025553312f302d0609"+"2a864886f70d0109011620737570706f727440626c75656172726f77646576656c6f706d656e742e636f6d31123010060355"+"04070c09436c6576656c616e64301e170d3136303232393231313733335a170d3137303232383231313733335a3081b03129"+"302706035504030c20757064617465732e626c75656172726f77646576656c6f706d656e742e636f6d3110300e0603550408"+"42048c788db687ed84407da10f78182e3487d1fc31c07ee131151f4e19b360ad2a8c452c2e7d614a5691d5479787fe70dabd"+"0613025553312f302d06092a864886f70d0109011620737570706f727440626c75656172726f77646576656c6f706d656e74"+"2e636f6d3112301006035504070c09436c6576656c616e6430820122300d06092a864886f70d01010105000382010f003082"+"010a0282010100a1cdf5af6f1bba5cc8495d8061895f39858fde814f5581266505bf4cbe0b26506278bc247963bb7c42f0b8"+"b00638871932ed7d0a3c6562be8e5b513f24da2768051acde875b53bf94c8ea2cec397145db206b2524c42a2019a0bfa14e2"+"a7ef0d311235e07b7e0363345fd7f397e365c0865b1b8fa8ad7eebdc1fcdce360db04f2822438621534ae10744155a710641"+"9a69c16745974a37c5b06917036351b92c06540??a6c70aa776c143eef6f7b8ec31c0c40a9eab8a399c9065bea688ea7bd1db2"+"30af56d2ca0f8983f9e8dacb5613755fbcd8229d7042668a9130468a7480a2afde8c18bab895472ddf1ed2c49291c04e8cc2"+"ff24db33d231b3a2498c03a5650203010001a34d304b301d0603551d0e0416041476b5c2c82ff138b87c0e2d6c046af4c634"+"55040a0c16426c75652048c1f54dcb82e3487d1fc31c07ee1313fba9204c7b3232ba9204c7b323a021abcbda85bfca9c9931"+"092a864886f70d01010b050003820101001ab0dfd318cc2e93a997445d0950ffcb63544c58fe1ded6e234aa7ccdcb5c890b1"+"61b51ae08c1f54dcb3fbeca9c9932bde91d202b89c0b6f0af1a370017fa9f6a021abcbda85bfecebebc6d6067d4dc1e51ec5"+"02cf95867516a84f01410cf80d7af4f0d3e9a86cf7b0323dba9204c7b3232c58b2289032a12aaa1ec4f64065da8bbde4fe47"+"42048c788db687ed84407da10f78182e3487d1fc31c07ee131151f4e19b360ad2a8c452c2e7d614a5691d5479787fe70dabd"+"de819522bb7ef870595d9738a6acdd39b7fcf6f36948ef2b404c2b6d7ebe577555148ad90013a5c2e812b2b907c808288040"+"0db6702407585328f7e6c84b40451384391783001174d0";#endregion//Usethefollowingtogettheserver'sfingerprinttobesavedandcomparedagainstStringBuilderhex=newStringBuilder(certificate_details.RawData.Length*2);foreach(bytebincertificate_details.RawData)hex.AppendFormat("{0:x2}",b);stringserverFingerprint=hex.ToString();if(serverFingerprint==storedFingerprint)returntrue;elsereturnfalse;}elsereturnfalse;}elseif(sslPolicyErrors==SslPolicyErrors.None)returntrue;elsereturnfalse;}publicvoidTestDownload(UritargetURL,booluseCredentials,stringuser,stringpass){WebClient客户端=newWebClient();booltaskCompleted=false;//创建事件手监控进度的服务器client.DownloadProgressChanged+=newDownloadProgressChangedEventHandler(client_DownloadProgressChanged);client.DownloadDataCompleted+=newDownloadDataCompletedEventHandler(client_DownloadDataCompleted);ServicePointManager.ServerCertificateValidationCallback+=newRemoteCertificateValidationCallback(client_RemoteCertificateValidation);//解析主机IPHostEntryhost=Dns.GetHostEntry(targetURL.Host);IPAddressip=(host.AddressList.Length>0?host.AddressList[0]:null);//向UI显示已解析的主机//凭据的帐户if(useCredentials){NetworkCredentialcredentials=newNetworkCredential(user,pass);client.Credentials=凭据;}elseclient.Credentials=null;//下载文件client.DownloadDataAsync(targetURL,taskCompleted);//进入休眠直到文件下载完成do{Thread.Sleep(500);}while(client.IsBusy);//文件下载完成//销毁事件处理程序作为th不再需要它们ServicePointManager.ServerCertificateValidationCallback-=client_RemoteCertificateValidation;client.DownloadProgressChanged-=client_DownloadProgressChanged;client.DownloadDataCompleted-=client_DownloadDataCompleted;客户端连接到Apache服务器上的Web服务。这就是为我解决问题的原因。以上就是C#学习教程:Web客户端异常:底层连接关闭:无法为SSL/TLS安全通道建立信任关系的所有内容分享,如果对大家有用还需要进一步了解C#学习教程,希望大家多多指教Follow—(proxy).UserAgent="Apache-HttpClient/4.1.1(java1.5)";本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
