Stunnel no funcionará con SSLv3 de algunos hosts

9

ADVERTENCIA: SSLv3 está obsoleto . Considere deshabilitarlo por completo .

Estoy tratando de configurar Stunnel en el servidor como caché SSL. Todo fue suave, y sobre todo funciona según lo diseñado.

Luego encontré errores en los archivos de registro:

 SSL_accept: 1408F10B: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number

No todos los clientes disparan eso, por alguna extraña razón. Conectando desde CentOS usando enlaces: aparece el error (probado con varias máquinas) Conectarse desde Ubuntu usando enlaces - no hay error.

Intenté usar wget, y todo es fluido con TLSv1, pero el error aparece con SSLv3. Al mismo tiempo, wget informa:

OpenSSL: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

No se puede establecer la conexión SSL.

Aquí está mi configuración:

pid = /etc/stunnel/stunnel.pid
debug = 3
output = /etc/stunnel/stunnel.log

socket=l:TCP_NODELAY=1
socket=r:TCP_NODELAY=1

verify=3    

; fixing "fingerprint does not match" error
fips=no

[https]
accept=12.34.56.78:443
connect=127.0.0.1:80
TIMEOUTclose=0
xforwardedfor=yes
CAfile = /path/to/ssl/example.com.cabundle
cert=/path/to/ssl/example.com.crt
key=/path/to/ssl/example.com.key

¿Alguien tiene alguna idea de lo que está sucediendo aquí? Buscado en Google por varias horas ahora, no puedo entenderlo.

Versión OpenSSL: OpenSSL 0.9.8e-fips-rhel5 01 de julio de 2008.

Versión de Stunnel: 4.32

EDITAR:

Aquí hay una salida de openssl s_client -connect example.com:443 -ssl3

CONNECTED(00000004)
3897:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1086:SSL alert number 40
3897:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:530:

Lo mismo -tls1funciona bien, sin ningún error.

Sergey
fuente

Respuestas:

10

Ok, el problema fue resuelto ... Agregué esto a la configuración:

sslVersion = all
options = NO_SSLv2

Que yo entienda, el error estaba relacionado con SSLv23. Ahora todo funciona como se esperaba.

Sergey
fuente
También necesitaba agregarfips = no
Steve Tauber el
También puede agregar option = NO_SSLv3para forzar que se seleccione una de las variantes de TLS.
Tedford
6

SSL3_GET_RECORD:wrong version numberes la llave. Parece que Lynx en sus sistemas CentOS no está utilizando SSLv3.

Será más fácil verificar el comportamiento exacto con openssl s_client:

Comprueba lo que sucede con solo SSLv3:

openssl s_client -connect server:443 -ssl3

Y con solo TLS:

openssl s_client -connect server:443 -tls1
Shane Madden
fuente
Editó la publicación para proporcionar más detalles
Sergey
Intente agregar -no_ticketal intento SSLv3. Parece este error de OpenSSL .
Shane Madden
Hmm, muestra una opción desconocida
Sergey
@Serge Eso es ... extraño. ¿Qué se obtiene a partir de openssl version?
Shane Madden
0

Tuve que establecer

options = -NO_SSLv3

para desactivar la opción ahora predeterminada de NO_SSLv3. (El servidor al que se conecta no hace TLS)

Jonathan Nicol
fuente