• Publicidad

perl ssleay

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

perl ssleay

Notapor chuscazo » 2008-10-01 12:15 @552

Hola, os cuento mi problema.

Tengo un script para probar la conexión a un webservice por https. Esto es debido a que un desarrollo para webservice que sí funciona en la máquina de pruebas no funciona en producción. El problema de que no funcione al parecer estar en la conexión con el servidor por https.

El script que prueba la conexión es como este:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
# PROXY SUPPORT
  # DEBUGGING SWITCH / LOW LEVEL SSL DIAGNOSTICS
 $ENV{HTTPS_DEBUG} = 2;
 use LWP::Debug qw(+);
 use LWP::UserAgent;

print "\nProduccion\n";

 my $ua = LWP::UserAgent ->new (env_proxy => 1);
 $ua->proxy(['http'], 'http://1.1.1.1:8080/');
 $ua->credentials(
  'url.dominio.es:443',  
  'algo',
  'user','pass'
);

 my $req = new HTTP::Request('GET', 'https://url.dominio.es/carpeta1/carpeta2/ws?wsdl');
 my $res = $ua->request($req);
 print $res->code."\n";
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Pues en desarrollo me responde 200 y en producción 500.

El caso es que el proxy si es accesible desde producción ya que el antiguo desarrollo lo utiliza (pero no utiliza el https)

Yo creo que está relacionado con el CryptSSLeay y OpenSSL. Pero no tengo acceso a la máquina de producción por lo que estoy dando palos de ciego y no puedo hacer pruebas.

Os paso las versiones de Perl y SSLeay, para ver si me podéis ayudar.

ActivePerl 5.8.8 (window$)
CryptSSLeay 0.57

Gracias, saludos.
chuscazo
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2008-06-25 07:49 @367

Publicidad

Notapor salva » 2008-10-01 15:18 @679

¿No será que solo estás definiendo el proxy para el protocolo http y no para https? Prueba...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$ua->proxy(['https'], 'http://1.1.1.1:8080/');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Probablemente el error que te devuelve sea un
Código: Seleccionar todo
500 Connect failed
.

En cualquier caso, LWP viene acompañado por una serie de utilidades que se pueden usar directamente desde la shell y que te permiten hacer peticiones a mano. Prueba lo siguiente a ver qué respuesta obtienes:

Sintáxis: [ Descargar ] [ Ocultar ]
Avatar de Usuario
salva
Perlero nuevo
Perlero nuevo
 
Mensajes: 200
Registrado: 2008-01-03 15:19 @680

Notapor explorer » 2008-10-01 19:37 @859

Nosotros también tuvimos el mismo problema, y la solución fue poner las credenciales en las variables de entorno, igual que has hecho con la HTTPS_DEBUG.

Es algo que aún no entiendo porqué.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

credenciales

Notapor chuscazo » 2008-10-02 02:07 @130

Gracias a los dos.

Explorer, ¿me puedes explicar un poco mejor lo de las credenciales?

Voy a probar las otras recomendaciones.

Os aviso si tengo algo, y si no os suplicaré para que me deis algo.
chuscazo
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2008-06-25 07:49 @367

Notapor explorer » 2008-10-02 05:34 @274

Está en el manual de Crypt::SSLeay, en la sección "Crypt::SSLeay proxy support".

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  # proxy_basic_auth
  $ENV{HTTPS_PROXY_USERNAME} = 'username';
  $ENV{HTTPS_PROXY_PASSWORD} = 'password';
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Probado y nada

Notapor chuscazo » 2008-10-02 11:10 @507

He probado la sugerencia de Salva y nada.

En cuanto a lo que me comentaba explorer entiendo que te refieres a las credenciales del proxy, pero el proxy no necesita autenticación, es el destino final el que me pide la autenticación. ¿Entendí mal lo que me comentabas?

¿Conocéis algún problema con el SSleay, openssl y Perl?

Estoy empecinado en que está ahí el problema. Y pienso que es este el problema por que el antiguo script no utilizaba https pero si el proxy y funciona correctamente.

Saludos y gracias a los 2.
chuscazo
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2008-06-25 07:49 @367

Notapor salva » 2008-10-02 13:22 @598

Si haces la petición con lwp-request como te comentaba en mi anterior mensaje, ¿qué es lo que aparece por pantalla?
Avatar de Usuario
salva
Perlero nuevo
Perlero nuevo
 
Mensajes: 200
Registrado: 2008-01-03 15:19 @680

Notapor explorer » 2008-10-02 13:27 @602

¿Te sale algo en los mensajes de debug? Veo que lo tienes activado.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor chuscazo » 2008-10-03 02:25 @142

Código: Seleccionar todo
LWP::UserAgent::new: ()
LWP::UserAgent::proxy: ARRAY(0x1c44f8c) http://1.1.1.1:8080/
LWP::UserAgent::proxy: http http://1.1.1.1:8080/
LWP::UserAgent::request: ()
LWP::UserAgent::send_request: GET https://url.dominio.es:443/carpeta1/carpeta2/ws?wsdl
LWP::UserAgent::_need_proxy: Not proxied
LWP::Protocol::http::request: ()
LWP::UserAgent::request: Simple response: Internal Server Error 500


Creo que era un 500, ya os comentaba que no tengo acceso a esa máquina, pero creo que es ese.

Saludos
chuscazo
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2008-06-25 07:49 @367

Notapor salva » 2008-10-03 07:16 @344

bueno, ahí aparece bien clarito la causa por la cual no te funciona (o al menos una de ellas):

Código: Seleccionar todo
LWP::UserAgent::_need_proxy: Not proxied


Con el cambio que yo te había sugerido, en cambio:

Código: Seleccionar todo
Produccion
LWP::UserAgent::new: ()
LWP::UserAgent::proxy: ARRAY(0x8443908) http://1.1.1.1:8080/
LWP::UserAgent::proxy: https http://1.1.1.1:8080/
LWP::UserAgent::request: ()
LWP::UserAgent::send_request: GET https://url.dominio.es/carpeta1/carpeta2/ws?wsdl
LWP::UserAgent::_need_proxy: Proxied to http://1.1.1.1:8080/
LWP::Protocol::http::request: ()
Avatar de Usuario
salva
Perlero nuevo
Perlero nuevo
 
Mensajes: 200
Registrado: 2008-01-03 15:19 @680

Siguiente

Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 21 invitados