El problema ocurre cuando queremos compilar programas con versiones antiguas que hacen en su código uso de este protocolo, este es el caso de querer compilar desde código SQUID2.7 sobre una Ubuntu 10.10, obtendremos un error similar a:
ssl_support.o: In function `sslCreateServerContext': /usr/src/proxy/squid-2.7.STABLE9/src/ssl_support.c:451: undefined reference to `SSLv2_server_method' ssl_support.o: In function `sslCreateClientContext': /usr/src/proxy/squid-2.7.STABLE9/src/ssl_support.c:614: undefined reference to `SSLv2_client_method' collect2: ld returned 1 exit status
La solución pasa por parchear el código o eliminar las partes que requieren de funciones sslv2 tal como se puede observar en el siguiente patch
--- /usr/src/proxy/squid-2.7.STABLE9/src/ssl_support.c.orig 2011-12-16 12:54:54.000000000 +0100 +++ /usr/src/proxy/squid-2.7.STABLE9/src/ssl_support.c 2011-12-16 12:55:15.000000000 +0100 @@ -446,10 +446,12 @@ ERR_clear_error(); debug(83, 1) ("Initialising SSL.\n"); switch (version) { +#ifndef OPENSSL_NO_SSL2 case 2: debug(83, 5) ("Using SSLv2.\n"); method = SSLv2_server_method(); break; +#endif case 3: debug(83, 5) ("Using SSLv3.\n"); method = SSLv3_server_method(); @@ -609,10 +611,12 @@ ERR_clear_error(); debug(83, 1) ("Initialising SSL.\n"); switch (version) { +#ifndef OPENSSL_NO_SSL2 case 2: debug(83, 5) ("Using SSLv2.\n"); method = SSLv2_client_method(); break; +#endif case 3: debug(83, 5) ("Using SSLv3.\n"); method = SSLv3_client_method();
Para aplicarlo podemos copiar el contenido anterior en un archivo y ejecutar: patch -p0 < parche.txt
comentarios:
Gracias. la modificacion anduvo. Probaste postear este parche en el bugzilla de Squid?
gracias.
para ser honesto, pienso que es una locura que isso es necessario -_- editar la fuenta de Squid solamente para usarlo con HTTPS en debian.
bueno... por lo menos, fonctiona.
Publicar un comentario