SSLStream: Fehler bei Handshake wegen eines unerwarteten Paketformats.

  • VB.NET
  • .NET (FX) 4.5–4.8

    SSLStream: Fehler bei Handshake wegen eines unerwarteten Paketformats.

    Hallo,
    ich bin aktuell dabei, eine Software für die Benutzung von SSL umzustellen. Dafür benutze ich "SSLStream".
    Jedoch habe ich das Problem, dass die Authentifizierung jedes Mal mit "Fehler bei Handshake wegen eines unerwarteten Paketformats." abbricht.
    StackTrace

    Quellcode

    1. bei System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
    2. bei System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
    3. bei System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
    4. bei System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
    5. bei System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
    6. bei System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
    7. bei System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)
    8. bei FPH.SpedV.API.ServerCommunication.Helper.AbstractClient.connect() in E:\Daten\Cloud\Dropbox\Eigene Programme\VB.NET\In Entwicklung\FPH SpedV\FPH SpedV-API\ServerCommunication\Helper\AbstractClient.vb:Zeile 88.


    Die relevanten Codeabschnitte:
    Server

    VB.NET-Quellcode

    1. Sub init()
    2. Try
    3. Dim tL As New Threading.Thread(AddressOf getIPLoc)
    4. tL.Start(connectionname)
    5. SSLStream = New SslStream(Stream, True)
    6. SSLStream.AuthenticateAsServer(Server.Certificate, False, Security.Authentication.SslProtocols.Tls, False)
    7. StreamReader = New JsonTextReader(New StreamReader(SSLStream))
    8. StreamWriter = New JsonTextWriter(New StreamWriter(SSLStream))
    9. t.Start()
    10. Logging.LogText(logsection, "CONN", "Verbindung steht, zuhören auf " & connectionname & " gestartet")
    11. Catch ex As Exception
    12. Logging.LogException("USRSVR", "INIT", ex, connectionname)
    13. internUserLeft("Serverfehler")
    14. End Try
    15. End Sub

    Client

    VB.NET-Quellcode

    1. Public Sub connect()
    2. Dim reconnecting As Boolean = (state = ConnectionState.Broken)
    3. Try
    4. cstate = ConnectionState.Opening
    5. Client.Connect(ServerIP, ServerPort)
    6. If Client.Connected Then
    7. NetworkStream = Client.GetStream
    8. SSLStream = New SslStream(NetworkStream, True)
    9. Threading.Thread.Sleep(1000) 'Testweise, um zu überprüfen ob der Server zu lahm ist
    10. SSLStream.AuthenticateAsClient("pada.fphst.de", Nothing, Security.Authentication.SslProtocols.Tls, True)
    11. StreamReader = New JsonTextReader(New StreamReader(SSLStream))
    12. StreamWriter = New JsonTextWriter(New StreamWriter(SSLStream))
    13. t1.Start()
    14. t2.Start()
    15. cstate = ConnectionState.Connected
    16. Else
    17. If reconnecting Then : cstate = ConnectionState.Broken
    18. Else : cstate = ConnectionState.OpenFailed
    19. End If
    20. End If
    21. Catch ex As Exception
    22. If reconnecting Then : cstate = ConnectionState.Broken
    23. Else : cstate = ConnectionState.OpenFailed
    24. End If
    25. End Try
    26. End Sub

    Hat irgendjemand eine Idee? Dass die Ports und Adressen richtig sind, habe ich bereits überprüft.
    mbfan
    You should live for that what you belive. - Drag-Drop Beschreibung