SafeChildren Banner

Havoc Oracle Solaris Experts

viernes, 25 de enero de 2013

Error en python "sslv3 alert handshake failure" sobre OpenIndiana

Introducción
Hace unos días quería hacer unas pruebas sobre una idea que llevaba en la cabeza para nuestro appliance HSeries mientras iba en el AVE, y, decidí utilizar una máquina virtual que tenía en mi equipo para hacer las pruebas.

Claro que no sabía que me encontraría con un error que, en los sistemas de producción y testing no se repetía, así que estuve volviéndome loco investigando el asunto.

El error
El script escrito en python hace una llamada a un servidor mediante SSL y carga un XML para luego utilizarlo, sin embargo, cuando llamaba en la máquina virtual al script obtenía un error en Python

hseries$ python havoc.boot  
(c) Havoc Technologies 2007-2013
Can't Load XML
Traceback (most recent call last):
  File "havoc.boot", line 42, in <module>
    req = urllib2.urlopen(locator)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 126, in urlopen
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 394, in open
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 412, in _open
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 372, in _call_chain
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1207, in https_open
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1174, in do_open
URLError: <urlopen error [Errno 1] _ssl.c:503: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure>



Las pruebas
Entendía que tal vez sería un problema del certificado, así que, cree uno nuevo autofirmado -aunque no tenía mucho sentido ya que URLLib2 no comprueba los certificados-, cambié las versiones de Tomcat, de Java, etc. y nada.

No fue hasta que por desesperación, hice la prueba sobre una máquina FreeBSD con el mismo certificado, misma Java, mismo Tomcat y ... funcionó. ¿Entonces el problema está en mi máquina virtual, no?

El problema
Después de muchas pruebas, comprobé la versión de OpenIndiana -si, ya sé que lo debería haber hecho antes, pero pensaba que era la misma-, y, es aquí donde está el problema. En la versión OpenIndiana b148 la versión de OpenSSL es la 0.9.8.15 -podemos verla utilizando el comando pkg con la opción info-.

havoc@h100:/# pkg info openssl
          Name: library/security/openssl
       Summary: OpenSSL - a Toolkit for Secure Sockets Layer (SSL v2/v3) and Transport Layer (TLS v1) protocols and general purpose cryptographic library
   Description: OpenSSL is a full-featured toolkit implementing the Secure
                Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1)
                protocols as well as a full-strength general purpose
                cryptography library.
      Category: System/Security
         State: Installed
     Publisher: openindiana.org
       Version: 0.9.8.15
 Build Release: 5.11
        Branch: 0.148
Packaging Date: 25 de noviembre de 2010 00:12:56
          Size: 10.08 MB
          FMRI: pkg://openindiana.org/library/security/openssl@0.9.8.15,5.11-0.148:20101125T001256Z


Sin embargo, en el build 151a aunque la versión es igual 0.9.8.15 el tamaño del paquete es inferior.

havoc@h1000:~$ pfexec pkg info openssl
          Name: library/security/openssl
       Summary: OpenSSL - a Toolkit for Secure Sockets Layer (SSL v2/v3) and Transport Layer (TLS v1) protocols and general purpose cryptographic library
   Description: OpenSSL is a full-featured toolkit implementing the Secure
                Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1)
                protocols as well as a full-strength general purpose
                cryptography library.
      Category: System/Security
         State: Installed
     Publisher: openindiana.org
       Version: 0.9.8.15
 Build Release: 5.11
        Branch: 0.151.1
Packaging Date: 12 de septiembre de 2011 02:41:35
          Size: 9.81 MB
          FMRI: pkg://openindiana.org/library/security/openssl@0.9.8.15,5.11-0.151.1:20110912T024135Z


Solución
Así que cree una máquina virtual nueva, con la versión OpenIndiana 151a, volví a ejecutar el script y ... listo, ningún problema.

Conclusiones
Cuando vayas a hacer unas pruebas aunque sea en un viaje en AVE para pasar el tiempo ... asegúrate de tener el mismo nivel de parcheo, versiones, etc. que los equipos de producción.

No hay comentarios:

Publicar un comentario en la entrada