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

EDI, CMS, Outils, Scripts et API PHP Discussion :

cUrl et HTTPS


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre expérimenté
    cUrl et HTTPS
    Bonjour,
    Bien que Drupal ne soit plus mentionné dans cette section du Forum, s'agissant d'un soucis cUrl, je me permets de poster ma question.
    En effet, Drupal utilise cUrl pour réaliser le téléchargement d'un module que l'on désire ajouter. Lorsque le lien pointe vers du HTTP, aucun problème, tout fonctionne bien. Par contre, si le lien exploite HTTPS, j'obtiens le message d'erreur suivant :
    Échec de la récupération du fichier dû à l'erreur "cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)"
    J'ai alors suivi les indications données sur le lien présent dans le message d'erreur, mais sans succès. Il semblerait que cUrl ne sache pas retrouver les certificats présents sur le serveur pour s'en servir dans ce contexte HTTPS.
    Quelqu'un saurait-il me dire comment faire fonctionner cUrl avec HTTPS ?
    Voilà ce que me donne la commande "curl --version" sur mon serveur Debian 10 fraîchement installé :
    curl 7.52.1 (x86_64-pc-linux-gnu) libcurl/7.52.1 OpenSSL/1.0.2u zlib/1.2.8 libidn2/2.2.0 libpsl/0.17.0 (+libidn2/0.16) libssh2/1.7.0 nghttp2/1.18.1 librtmp/2.3
    Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  2. #2
    Modérateur

    Et si vous dite à cURL de ne pas vérifier le certificat ?

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  3. #3
    Membre expérimenté
    Bonjour,
    Merci pour votre réponse. J'avais trouvé sur le net divers explications dont cette proposition. Mais comme dans les autres cas, mes compétences Linux et cUrl étant proches du zéro absolu je ne sais pas quoi faire de cette ligne ?!
    C'est à ajouter dans un fichier ini particulier ?
    C'est à modifier dans la configuration de Drupal ?
    Cela concerne la configuration de Apache ?
    L'ensemble ?
    Bien que je n'ai pas installé grand chose sur mon serveur, je n'ai pas moins de 7 fichiers php.ini différents, et contrairement aux outils système, je ne trouve pas de dossier particulier hébergeant les fichiers de configurations de cUrl, si toutefois il en existe.
    Bref, je suis perdu.
    Merci d'éclairer ma lanterne.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  4. #4
    Modérateur

    Bonjour,
    Si je fais une recherche google, je tombe sur ceci : https://docs.bolt.cm/3.2/howto/curl-...a-certificates. c'est unr truc que je tenterais.

    Pour savoir qu'elle fichier php.ini il faut modifier, vous pouvez le savoir grâce à la fonction phpinfo()

    dans un fichier à la racine de votre répertoire web, créer un fichier info.php et mettez ceci dedans


    <?php

    phpinfo();
    Affichez le sur votre navigateur et vous devriez au début de cette vue voir où se trouve votre fichier php.ini,

    sous Debian, je dirais /etc/php/7.*/apache2 , sous vous êtes sous apache

    Une fois toutes les manipulation effectuée, n'oubliez pas de relancer apache

    Code bash :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    sudo systemctl restart apache2

  5. #5
    Membre expérimenté
    Bonsoir,
    Merci pour vos précisions que j'ai suivi à la lettre.
    Bien que j'avais déjà tenté cela avec un autre fichier .pem, j'obtiens toujours le code erreur 60 de cUrl.
    Échec de la récupération du fichier dû à l'erreur "cURL error 60: SSL certificate problem: unable to get local issuer certificate
    En d'autre terme, si je ne me trompes pas, il ne veut pas plus de cacert.pem que du premier fichier .pem que j'avais mis en place.
    Bien que le fichier que vous indiquez dans vos précisions semble être le bon, il n'en veut pas.
    En tous cas c'est ce que dit "curl.haxx.se" pour le code erreur 60 :
    The remote server's SSL certificate or SSH md5 fingerprint was deemed not OK
    Je continue de chercher où ça coince.
    Cependant, vous parliez de :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    Mais si je ne me trompes pas, il s'agit là d'une de ligne de code php ?
    N'y a-t'il pas moyen de faire la même chose via le fichier php.ini ?
    Je pose la question car je n'ai trouvé aucune occurrence du moindre mot de cette ligne de code dans le fichier /etc/php/7.3/apache2/php.ini manipulé...
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  6. #6
    Membre expérimenté
    Bonsoir,
    Je reviens vers vous car je désespère. Est-il possible d'utiliser cUrl avec HTTPS, oui ou non, et si oui comment ?
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

###raw>template_hook.ano_emploi###