c# - protocollo - connessione sottostante chiusa errore imprevisto durante un'operazione di ricezione



Eccezione client Web: la connessione sottostante è stata chiusa: impossibile stabilire una relazione di trust per il canale protetto SSL/TLS (2)

Per quanto ne so è perché usano un certificato SSL non valido o scaduto. Puoi ignorarlo (ignorarlo) usando:

ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;

Modifica 2015 :

Questo post sta ottenendo un sacco di voti positivi, ma mi pento della mia risposta. Può rimuovere il tuo errore, ma non risolverà il problema. Accettare qualsiasi certificato SSL ti lascerà vulnerabile agli attacchi man in the middle, quindi è generalmente una pessima idea. Lascerò questa risposta per riferimenti futuri, ma ti preghiamo di notare che dovresti provare a risolvere il problema alla radice, vale a dire assicurandoti che il certificato SSL sia valido.

Ho una semplice app che usa la classe C # Web Client per scaricare un HTML di siti web. Questo è un esempio ridotto del codice che sto usando:

WebClient wc = new WebClient();
wc.Headers.Add("user-agent",
    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
htmlCode = wc.DownloadString("https://www.oig.hhs.gov/exclusions/exclusions_list.asp");

Sembra esserci un problema con il certificato dei siti Web, perché ho riscontrato questa eccezione:

The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel." "The remote certificate is invalid according to the validation procedure.

Se si copia e incolla il collegamento in un browser, è necessario accettare i rischi prima di consentire la visualizzazione del sito. È un sito web del governo, quindi non sono preoccupato per nessun virus o altro. È comunque necessario comunicare al client Web di ignorare questo problema e continuare con il sito?


Answer #1

Prova questo :
Quello che vorresti fare è installare il certificato nel tuo computer locale.

La procedura se non fosse in codice sarebbe quella di fare quanto segue:

  1. Apri Internet Explorer in modalità amministratore (non Chrome).
  2. Vai al sito
  3. Seleziona procedi
  4. Fare clic sulla barra titelbar / url sul certificato per visualizzare il certificato.
  5. Fai clic su Installa certificato.

Quindi puoi provare a dare un'occhiata a queste altre domande e vedere se ti aiutano:

Prova ad installare il certificato e vedi se vai di nuovo all'URL, se ti chiede di procedere.

****MODIFICARE**:
Ho letto il certificato del sito, è perché c'è una discrepanza tra il certificato e l'url del sito.

Un semplice cambiamento sarebbe questo:

htmlCode = wc.DownloadString("https://oig.hhs.gov/exclusions/exclusions_list.asp");

Basta rimuovere il www.





ssl