¿Cómo puedo solucionar: El apretón de manos ha fallado debido a un inesperado formato de paquete?

Me estoy conectando desde Windows Server 2008 R2 a un FTP de Linux Servidor que ejecuta vsFTPd 2.0.7. Me estoy conectando a través de SSL.

Aquí es la línea de código que está fallando en:

sslStream = new SslStream(stream, false, CertificateValidation);

Aquí está el log:

220 (vsFTPd 2.0.7)
AUTH SSL
234 Proceed with negotiation.

Recibo el siguiente error:

System.IO.IOException: The handshake failed due to an unexpected packet format.
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
   at KellermanSoftware.NetFtpLibrary.ProxySocket.InitSsl()
   at KellermanSoftware.NetFtpLibrary.FTP.Connect(Boolean implicitConnection)
InformationsquelleAutor Greg Finzer | 2010-03-16

1 Kommentar

  1. 1

    De mi búsqueda de google, parece que este es un problema común para vsftpd.

    http://www.question-defense.com/2010/02/04/vsftpd-error-gnutls-error-9-a-tls-packet-with-unexpected-length-was-received

    Usted puede comprobar fuera de dicho artículo para obtener consejos para una solución

    Se reduce a:

    • Configurar vsftpd para ftpes (Archivo Transer Protocolo Explícito TLS/SSL)
    • Verificar que usted tiene un certificado SSL generados,o generar, si es necesario,
    • modificar vsftpd.conf para permitir FTPES conexiones y transferencias
    • Vsftpd Restart para que los cambios surtan efecto
    • comprobar que está ejecutando la última versión y actualizar si es necesario

    actualización

    Otra cosa a revisar es: http://ftps.codeplex.com/Thread/View.aspx?ThreadId=63605
    Que el hilo habla de la diferencia entre lo Implícito y lo Explícito el modo con el bloque de código siguiente ejemplo:

    private Stream GetDataStream()
    {
        Stream s = null;
    
        if (SslSupportCurrentMode == ESSLSupportMode.Implicit)
        {
            s = dataClient.GetStream();
        }
        else if ((sslSupportCurrentMode & ESSLSupportMode.DataChannelRequested) == ESSLSupportMode.DataChannelRequested)
        {
            if (dataSslStream == null)
                dataSslStream = CreateSSlStream(dataClient.GetStream(), false);
            s = dataSslStream;
        }
        else
        {
            s = dataClient.GetStream();
        }
    
        return s;
    }
    

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea