Il mio sintomo è che non posso usare un proxy con richieste HTTPS con LWP. Questo sembra essere un problema comune, e i suggerimenti su Google e anche su here suggeriscono tutti un rimedio per l'impostazione della variabile di ambiente HTTPS_PROXY
per l'uso da Crypt :: SSLeay.Come impongo a LWP di utilizzare Crypt :: SSLeay per le richieste HTTPS?
Il mio problema specifico sembra essere che LWP :: Protocol :: https sta caricando IO :: Socket :: SSL piuttosto che Crypt :: SSLeay. Come posso forzare l'uso di Crypt :: SSLeay?
Il mio codice:
#!/usr/bin/perl
use strict;
use warnings;
$ENV{HTTPS_PROXY} = 'http://10.0.3.1:3128';
use LWP::UserAgent;
my $ua = LWP::UserAgent->new();
my $req = HTTP::Request->new('GET','https://www.meritrustcu.org/');
my $res = $ua->request($req);
print "$_\n" for grep { $_ =~ /SSL/ } keys %INC;
Ed è uscita, dimostrando che Crypt :: SSLeay non viene utilizzato:
Net/SSLeay.pm
IO/Socket/SSL.pm
/usr/lib/perl5/auto/Net/SSLeay/autosplit.ix
/usr/lib/perl5/auto/Net/SSLeay/set_proxy.al
/usr/lib/perl5/auto/Net/SSLeay/randomize.al
La semplice aggiunta di un esplicito use Crypt::SSLeay
per il mio script è dimostrato inefficace. Carica il modulo, ma continua a caricare IO :: Socket :: SSL e lo usa per le richieste HTTPS.
Perfetto, grazie! In questo modo è stato rilevato il probabile motivo per cui LWP imposta automaticamente IO :: Socket :: SSL, come si è verificato nella [propria domanda] (http://stackoverflow.com/questions/74358/how-can-i-get- lwp-to-validate-ssl-server-certificates): 'Net :: SSL da Crypt-SSLeay non può verificare nomi host; Installa IO :: Socket :: SSL o disattiva la verifica impostando la variabile d'ambiente PERL_LWP_SSL_VERIFY_HOSTNAME su 0' – Flimzy
LWP 6 ha cambiato la sua politica sulla convalida dei nomi host. Se puoi, usa qualcosa di diverso da Crypt :: SSLeay, che non ha uno sviluppatore dedicato (anche se Sinan lo ha aiutato a compilare). –
@briandfoy: Se riesco a capire come usare IO :: Socket :: SSL (o un'altra opzione - ci sono altre opzioni?) Con un proxy, lo farò. – Flimzy