1 votos

Subversion SSL handshake fallido y código de error 408

Versiones

Subversión : versión 1.6.11 (r934486)

Sistema operativo : CentOS versión 6.8 (Final)

Fondo

Tengo una variedad de Shell Shell que se ejecutan como cronjobs en una máquina CentOS. El Shell Shell Shell archivos a y checkout archivos de Subversion. Hoy todos mis Shell han empezado a fallar con el siguiente error

svn: OPCIONES de 'https://svn.int.mydomain.edu/eas': SSL handshake failed: Alerta SSL recibida: Error en la versión del protocolo ( https://svn.int.mydomain.edu )

Para solucionar el problema he ejecutado el siguiente comando

openssl s_client -connect svn.int.mydomain.edu:443

Y recibí el siguiente resultado ( redactado ligeramente )

CONNECTED(00000003)
---
Certificate chain
 0 s:/OU=Domain Control Validated/CN=*.int.mydomain.edu
   i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure Certificate Authority - G2
 1 s:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure Certificate Authority - G2
   i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./CN=Go Daddy Root Certificate Authority - G2
 2 s:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./CN=Go Daddy Root Certificate Authority - G2
   i:/C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority
 3 s:/C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority
   i:/C=US/O=The Go Daddy Group, Inc./OU=Go Daddy Class 2 Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
REDACTED
-----END CERTIFICATE-----
subject=/OU=Domain Control Validated/CN=*.int.mydomain.edu
issuer=/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure Certificate Authority - G2
---
No client certificate CA names sent
Server Temp Key: ECDH, prime256v1, 256 bits
---
SSL handshake has read 5545 bytes and written 373 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: REDACTED
    Session-ID-ctx: 
    Master-Key: REDACTED
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    Start Time: 1618275549
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
HTTP/1.1 408 Request Time-out
content-length: 110
cache-control: no-cache
content-type: text/html
connection: close

<html><body><h1>408 Request Time-out</h1>
Your browser didn't send a complete request in time.
</body></html>
closed

Como se puede ver estoy recibiendo un HTTP/1.1 408 Request Time-out al final de la salida estándar. Puedo verificar que tengo acceso a https://svn.int.mydomain.edu en esta caja, porque una instalación separada de svn funciona bien desde esa caja ( una instalación de SVN que vino con un plugin de Jenkins ).

Pregunta

¿Alguien tiene alguna idea sobre otras técnicas de solución de problemas? He intentado buscar este problema pero no hay respuestas fructíferas.

1voto

Brad Puntos 3206

La respuesta 408 es simplemente porque openssl nunca envió una petición HTTP. Hizo la conexión TCP y el handshake SSL pero eso es todo.

Las partes importantes de la respuesta son:

Protocol  : TLSv1.2
Cipher    : ECDHE-RSA-AES256-GCM-SHA384
Verify return code: 0 (ok)

En 0 (ok) significa que, en lo que respecta a openssl, la conexión SSL está bien. El certificado es válido y al menos un cifrado y protocolo son compatibles.

Pero el mensaje de error de tu bash script sugiere que la conexión SSL no está bien. Mi mejor suposición es que el servidor ha sido actualizado y ahora ya no soporta TLS 1.0 y TLS 1.1 y lo que sea que tu bash script esté usando para peticiones HTTPS no soporta TLS 1.2. Puede realizar una prueba de esto añadiendo el comando -tls1 a su comando openssl.

Si el resultado no es 0 (ok) entonces esta incompatibilidad de versión TLS es muy probablemente el problema.

También es posible que el problema sea un desajuste de los cifrados disponibles. Si sigues obteniendo un 0 (ok) para TLS 1.0, entonces valdría la pena examinar los cifrados disponibles en el servidor y en el cliente.

También podría valer la pena mirar el último cambio realizado en el servidor o simplemente intentar actualizar el cliente. (Es un tiro en la oscuridad, pero a veces esos trabajos...)

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X