Me gustaría saber si es posible forzar 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.¿Puedo forzar a LWP :: UserAgent a aceptar un certificado SSL caducado?
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 fue finalmente fijado en el servidor remoto antes de que yo era capaz de llegar a mi propia solución, pero me gustaría para poder sortear el problema de manera opcional si surgiera nuevamente (el servicio subyacente se había interrumpido durante varias horas antes de que me llamaran a la acción).
Preferiría una solución en el nivel de LWP :: UserAgent sobre una basada 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.
Esto a veces se cita como una solución, pero no pareció funcionar en mi caso; Sin embargo, no tuve tiempo de probarlo exhaustivamente, y podría haber estado equivocado. Planeo verificar si esto funciona o no para mí en un entorno de prueba. –