Bonjour,
Je dois reprendre un ensemble de scripts qui utilise LWP::UserAgent
J'ai déjà trouvé comment bypasser la vérification de hostname avec la variable d'environnement PERL_LWP_SSL_VERIFY_HOSTNAME, ainsi que le certificat avec HTTPS_CA_FILE.
Mais par défaut, la variable SSL_verify_mode reste à 0x00 (SSL_VERIFY_NONE) ce qui me vaut l'erreur suivante:
J'ai essayé de modifier LWP/Protocol/https.pmUsing the default of SSL_verify_mode of SSL_VERIFY_NONE for client
is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER
together with SSL_ca_file|SSL_ca_path for verification.
If you really don't want to verify the certificate and keep the
connection open to Man-In-The-Middle attacks please set
SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application.
*******************************************************************
at /usr/local/lib/perl5/site_perl/5.14.2/LWP/Protocol/http.pm line 31
J'ai aussi trouvé ça dans LWP/UserAgent.pm
Code : Sélectionner tout - Visualiser dans une fenêtre à part $ssl_opts{SSL_verify_mode} ||= 1;
Connaissez-vous une variable d'environnement qui permette de setter SSL_verify_mode sur 0x01 (SSL_VERIFY_PEER) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 unless (exists $ssl_opts->{verify_hostname}) { # The processing of HTTPS_CA_* below is for compatibility with Crypt::SSLeay if (exists $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}) { $ssl_opts->{verify_hostname} = $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}; } elsif ($ENV{HTTPS_CA_FILE} || $ENV{HTTPS_CA_DIR}) { # Crypt-SSLeay compatibility (verify peer certificate; but not the hostname) $ssl_opts->{verify_hostname} = 0; $ssl_opts->{SSL_verify_mode} = 1; } else { $ssl_opts->{verify_hostname} = 1; } } unless (exists $ssl_opts->{SSL_ca_file}) { if (my $ca_file = $ENV{PERL_LWP_SSL_CA_FILE} || $ENV{HTTPS_CA_FILE}) { $ssl_opts->{SSL_ca_file} = $ca_file; } } unless (exists $ssl_opts->{SSL_ca_path}) { if (my $ca_path = $ENV{PERL_LWP_SSL_CA_PATH} || $ENV{HTTPS_CA_DIR}) { $ssl_opts->{SSL_ca_path} = $ca_path; } }
Les objets sont créés un peu partout dans ces scripts, et c'est pour ça que j'aimerais passer par des variables d'environnement si possible, plutôt que de passer dans tous les scripts.
Merci d'avance,
Partager