perl https openssl squid lwp

perl - ¿Puedo forzar a LWP:: UserAgent a aceptar un certificado SSL caducado?



https openssl (2)

Intente anular la validación del certificado SSL con

$agent->ssl_opts(verify_hostname => 0, SSL_verify_mode => 0x00);

antes de hacer la solicitud https

Me gustaría saber si es posible obligar a LWP :: UserAgent a aceptar un certificado SSL caducado para un servidor único y conocido. El problema es un poco complicado por el proxy Squid en el medio.

Fui tan lejos como para configurar un entorno de depuración como:

use warnings; use strict; use Carp; use LWP::UserAgent; use LWP::Debug qw(+); use HTTP::Cookies; my $proxy = ''http://proxy.example.net:8118''; my $cookie_jar = HTTP::Cookies->new( file => ''cookies.tmp'' ); my $agent = LWP::UserAgent->new; $agent->proxy( [ ''http'' ], $proxy ); $agent->cookie_jar( $cookie_jar ); $ENV{HTTPS_PROXY} = $proxy; $ENV{HTTPS_DEBUG} = 1; $ENV{HTTPS_VERSION} = 3; $ENV{HTTPS_CA_DIR} = ''/etc/ssl/certs''; $ENV{HTTPS_CA_FILE} = ''/etc/ssl/certs/ca-certificates.crt''; $agent->get( ''https://www.example.com/''); exit;

Afortunadamente, el problema se solucionó en el servidor remoto antes de que pudiera encontrar mi propia solución, pero me gustaría poder evitar el problema si surgiera nuevamente (el servicio subyacente se interrumpió durante varias horas antes de que yo lo hiciera). fue llamado a la acción).

Preferiría una solución en el nivel LWP :: UserAgent más uno basado en las implementaciones Crypt :: SSLeay o openSSL subyacentes, si existe tal solución, ya que prefiero no relajar la seguridad para otras aplicaciones no relacionadas. Por supuesto, todavía estoy buscando una solución así, en mi copioso tiempo libre.


Actualizado para enviar el comentario

Para eludir todas las comprobaciones de certificados, puede configurar el agente para que no verifique el certificado.

$agent->ssl_opts(verify_hostname => 0);

El agente también pasará la configuración a la implementación de socket SSL que se está utilizando. Por ejemplo, con IO::Socket::SSL puede establecer SSL_verify_mode en 0x00 .

$agent->ssl_opts(SSL_verify_mode => 0x00);