Tengo un sistema CentOS 5.11 antiguo que ejecuta OpenSSL 0.9.8e. Soy capaz de conectar la mayoría de los sitios SSL sin ningún problema. Sin embargo, con algunos sitios como www.looklinux.com, si intento conectarme recibo este error:
openssl s_client -connect www.looklinux.com:443
CONNECTED(00000003)
27080:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert
handshake failure:s23_clnt.c:586:
Ahora, de hacer
openssl s_client -connect www.google.com:443 | grep -i "protocol"
Veo Protocol : TLSv1
en la salida. Y de
enlace
Sé que www.looklinux.com es compatible con TLS 1.0, 1.1 y 1.2. Así que parece que el cliente y el servidor comparten al menos un protocolo compatible (TLS v1) y ese no es el problema. Estoy en lo cierto hasta ahora?
Entonces, ¿qué está mal y cómo puedo solucionarlo?
Cuando lo ejecuto con el indicador -debug
, obtengo:
openssl s_client -connect www.looklinux.com:443 -debug
CONNECTED(00000003)
write to 0x872a198 [0x87665b8] (88 bytes => 88 (0x58))
0000 - 16 03 01 00 53 01 00 00-4f 03 01 5b 05 ff fc 97 ....S...O..[....
0010 - 78 87 a5 97 77 11 57 60-1b e0 ae 9f 81 8c c6 c6 x...w.W'........
0020 - 15 3c fb 0b ef 3e d7 20-8a 83 3b 00 00 28 00 39 .<...>. ..;..(.9
0030 - 00 38 00 35 00 16 00 13-00 0a 00 33 00 32 00 2f .8.5.......3.2./
0040 - 00 05 00 04 00 15 00 12-00 09 00 14 00 11 00 08 ................
0050 - 00 06 00 03 00 ff 01 .......
0058 - <SPACES/NULS>
read from 0x872a198 [0x876bb18] (7 bytes => 7 (0x7))
0000 - 15 03 01 00 02 02 28 ......(
1678:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:586:
Esta publicación:
enlace
sugiere que a veces una versión anterior de OpenSSL simplemente no es compatible. ¿Es fácil explicar qué es lo que OpenSSL no puede hacer? ¿Y realmente no hay solución? Desconfío de "actualizarlo" construyendo OpenSSL desde la fuente, porque las instrucciones para compilar desde la fuente generalmente tienen errores u omisiones, donde un lector experto sabe lo que se supone que las instrucciones supuestamente dicen, pero sigo Exactamente las direcciones y la manguera. Así que espero poder solucionar este problema simplemente instalando un certificado adicional, o algo así.