IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

[LWP::UserAgent] variables environnement


Sujet :

Modules Perl

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 87
    Points : 92
    Points
    92
    Par défaut [LWP::UserAgent] variables environnement
    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:
    Using 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 essayé de modifier LWP/Protocol/https.pm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ssl_opts{SSL_verify_mode} ||= 1;
    J'ai aussi trouvé ça dans LWP/UserAgent.pm
    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;
            }
        }
    Connaissez-vous une variable d'environnement qui permette de setter SSL_verify_mode sur 0x01 (SSL_VERIFY_PEER) ?

    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,

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 87
    Points : 92
    Points
    92
    Par défaut
    Bonjour,

    J'ai résolu mon souci en n'implémentant pas la variable PERL_LWP_SSL_VERIFY_HOSTNAME.

    Après une analyse un peu plus poussée du code, et sans me fier à ce que j'ai trouvé sur le net, cette partie là me plaisait bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    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;
            }
    du coup juste avec HTTPS_CA_FILE, ca marche nickel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'éclaicissement sur LWP::UserAgent
    Par bluecurve dans le forum Modules
    Réponses: 7
    Dernier message: 25/05/2006, 17h00
  2. [ Variable environnement ] Version java
    Par lhpp dans le forum Général Java
    Réponses: 13
    Dernier message: 08/04/2006, 11h01
  3. [Environnement][UNIX] Récupérer les variables environnement
    Par Jie.N dans le forum Général Java
    Réponses: 7
    Dernier message: 12/08/2005, 16h15
  4. [D6] Modifier variable environnement système !?
    Par Lung dans le forum API, COM et SDKs
    Réponses: 32
    Dernier message: 19/05/2005, 19h43
  5. installer une variable environnement dans windows xp pack 2
    Par superjeanpi dans le forum Windows XP
    Réponses: 1
    Dernier message: 03/03/2005, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo