Failure on HttpWebrequest with inner exception Authentication failed because the remote party has closed the transport stream

后端 未结 3 592
一个人的身影
一个人的身影 2020-12-16 10:36

Using C#, .Net 4.5, I\'m trying to send out a web request through HttpWebRequest on a remote server. Please see the code below. I tried most of the solutions suggested by s

3条回答
  •  时光取名叫无心
    2020-12-16 11:26

    See this link, it worked for me: How to do HTTPS with TcpClient just like HttpWebRequest does?

    Dim trust_all_certificates As New CertificateOverride
    ServicePointManager.ServerCertificateValidationCallback = AddressOf trust_all_certificates.RemoteCertificateValidationCallback
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3
    
    Public Class CertificateOverride
    
        Public Function RemoteCertificateValidationCallback(ByVal sender As Object, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As SslPolicyErrors) As Boolean
    
            'CertEXPIRED = 2148204801
            'CertVALIDITYPERIODNESTING = 2148204802
            'CertPATHLENCONST = 2148204804
            'CertROLE = 2148204803
            'CertCRITICAL = 2148204805
            'CertPURPOSE = 2148204806
            'CertISSUERCHAINING = 2148204807
            'CertMALFORMED = 2148204808
            'CertUNTRUSTEDROOT = 2148204809
            'CertCHAINING = 2148204810
            'CertREVOKED = 2148204812
            'CertUNTRUSTEDTESTROOT = 2148204813
            'CertREVOCATION_FAILURE = 2148204814
            'CertCN_NO_MATCH = 2148204815
            'CertWRONG_USAGE = 2148204816
            'CertUNTRUSTEDCA = 2148204818
    
            Return True
    
        End Function
    
    End Class
    

    P.S.

    I inserted this line of code before just to be sure that the certificate from the server side is accepted: ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3

提交回复
热议问题