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

Langage PHP Discussion :

erreur SSL3 dans code PHP pour récupérer du JSON


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    particulier
    Inscrit en
    Juillet 2020
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : particulier

    Informations forums :
    Inscription : Juillet 2020
    Messages : 51
    Par défaut erreur SSL3 dans code PHP pour récupérer du JSON
    Bonjour,

    J'ai posté sous php, car c'est dans un script php que je galère.
    Je n'arrive pas à obtenir le contenu json renvoyé par ce lien qui fonctionne dans le navigateur :
    https://www.prevision-meteo.ch/servi...6.259lng=5.235
    comme indiqué sur leur site :
    https://prevision-meteo.ch/services

    J'ai parcouru plusieurs forums, j'ai essayé de nombreuses possibilités, ça ne fonctionne toujours pas.
    Grosso modo voir le résumé ci-dessous :
    Depuis début mai, j'ai écris plusieurs fois au site, aucune réponse depuis.

    J'ai téléchargé le fichier "cacert.pem" depuis
    https://curl.haxx.se/ca/cacert.pem
    que j'ai mis à la racine C:\cacert.pem et j'ai modifié le fichier php.ini en ajoutant openssl.cafile="C:\cacert.pem"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lien = 'https://www.prevision-meteo.ch/services/json/lat=46.259lng=5.235';
    pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data = file_get_contents($lien);
    et pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $arrContextOptions=array(
        "ssl"=>array(
             "verify_peer"=>false,
             "verify_peer_name"=>false,
        ),
    );  
    $data = file_get_contents($lien, false, stream_context_create($arrContextOptions));
    j'obtiens le même message d'erreur
    Warning: file_get_contents() [function.file-get-contents]: SSL operation failed with code 1. OpenSSL Error messages: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version in C:\EasyPHP-5.3.8.1\www\monfichier.php
    Warning: file_get_contents() [function.file-get-contents]: Failed to enable crypto in C:\EasyPHP-5.3.8.1\www\monfichier.php
    Warning: file_get_contents(
    https://www.prevision-meteo.ch/services/json/lat=46.259lng=5.235) [function.file-get-contents]: failed to open stream: operation failed in C:\EasyPHP-5.3.8.1\www\monfichier.php


    Par contre avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function getSSLPage($url) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSLVERSION,3); 
        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    }
    $data = getSSLPage($lien);
    je n'ai plus de message d'erreur, je n'affiche rien et vardump($data) me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <pre dir='ltr'>boolean <font color='#75507b'>false</font></pre>
    Je ne retrouve plus le site où ils proposaient de définir un header, mais l'ayant essayé, il n'y avait toujours pas de résultat.
    Peut-être est-ce là la solution et que je l'avais mal comprise en la recopiant ?

    J'ai fait aussi une recherche google avec Warning: file_get_contents(https://www.prevision-meteo.ch/services/json, il me retourne de nombreux site, et quand je les visite, l'erreur n'est plus ni affichée, ni dans le source de la page reçue (ctrl u).

    Merci d'avance pour vos réponses.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Tu dois mettre à jour ta version de PHP.
    Le site que tu essai de joindre à du supprimer le support des protocoles obsolètes de type tls v1 et n'accepte donc pas ta connexion. Pour info tu utilise une version de PHP qui à 9 ans qui elle même utuilise une version d'openssl qui est au moins aussi vieille , d'où l'erreur...
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Femme Profil pro
    particulier
    Inscrit en
    Juillet 2020
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : particulier

    Informations forums :
    Inscription : Juillet 2020
    Messages : 51
    Par défaut
    Ah !
    Je sais bien que ma version est ancienne (Released: 23 August 2011)
    Au début du confinement, j'ai installé la dernière version d'easysphp devserver 17.0, outre que ça a bien évolué, j'étais un peu perdue, je dois réécrire pas mal de scripts.
    Il y a des fonctionnalités qui n'existent plus, il y en a des nouvelles, d'autres ont été modifiées, quasiment tout est passé poo, list() ne fonctionne plus de la même façon, etc.

    Pour openssl, 1.1.1 du 11 septembre 2018 serait La dernière version, avec 3 release depuis Mars 2020 (e,f,g).

    Je vais chercher s'il est possible de faire une mise à jour d'openssl sans trop changer de version de easyphp ?

    Il semblerait que ce soit possible, j'ai trouvé openssl-1.1.1g.tar.gz sur https://www.openssl.org/source/ et Win32OpenSSL_Light-1_1_1g.exe sur http://slproweb.com/download/Win32Op...ght-1_1_1g.exe

    Est-ce que https://apache.developpez.com/cours/...odssl-windows/ est toujours d'actualité ?
    Même après l'avoir lu, je ne comprend pas grand chose à cette page.

  4. #4
    Membre confirmé
    Femme Profil pro
    particulier
    Inscrit en
    Juillet 2020
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : particulier

    Informations forums :
    Inscription : Juillet 2020
    Messages : 51
    Par défaut
    J'ai retrouvé sur une clef usb une version plus récente !
    APACHE 2.4.7 - MYSQL 5.6.15 - PHP 5.4.24

    et je n'ai plus d'erreur, le json arrive par un simple file_get_contents.

    Il va falloir que je rebidouille la page home d'easyphp pour y inclure php_sqlite_admin (l'équivalent de phpmyadmin pour mysql version sqlite).
    Il y a plein de nouvelles choses, certaines payantes, j'ai un peu de mal.
    C'est peut-être pour ça que j'étais restée à mon antique version.

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Il faut vraiment que tu envisages de passer à PHP 7.
    PHP 5(.6) n'est plus supporté depuis plus d'un an déjà. En travaillant avec tu continue d'accentuer ta dette technique et tu met tes application en danger car des failles de sécurité existent certainement.

    Pour easyphp j'aurais tendance à te dire d'installer les composant toi même , c'est pas très compliqué et ca permet de faire ce que l'on veux.
    Tu peux aussi passer à wampserver.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Femme Profil pro
    particulier
    Inscrit en
    Juillet 2020
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : particulier

    Informations forums :
    Inscription : Juillet 2020
    Messages : 51
    Par défaut
    Beaucoup de personnes disant que c'était mieux qu'easyphp, j'ai essayé wamp, je n'ai pas réussi à le configurer, une personne l'a faite pour moi, mais je l'ai trouvé bien moins "confortable" à l'usage. Un peu comme quand j'ai voulu migrer sur linux.
    Je ne suis pas en production ni en exploitation, n'ayant pas moyen d'acheter visualbasic à l'époque, après avoir testé asp, depuis j'utilise php mysql pour mon "loisir" et je ne vais chercher sur la toile que des data gratuites de sources sûres, comme https://www.prix-carburants.gouv.fr/ ou https://prevision-meteo.ch/, éphémérides stellaires ou encore les géolocalisations de certains magasins depuis leurs sites (pour les mettre dans les POI du gps).
    Le reste n'est que de la "gestion" locale : vérification de mon temps de travail/salaire ; les frais du véhicule ; un serveur "domotique" ; et c'est tout. Rien d'extraordinaire.
    Alors pour la sécurité de mon "site" ... il n'y a rien de personnel. De plus il me semble que le contexte sans faille n'existe pas : https://securite.developpez.com/actu...rs-a-distance/
    Est-ce que https://apache.developpez.com/cours/...odssl-windows/ est toujours d'actualité ?
    Même après l'avoir lu, je ne comprend pas grand chose à cette page.
    D'ici la fin de l'année, je devrais passer sous seven avec un ordi que l'on me cédera, ça me changera d'xp.
    Pas de streaming, de téléchargements, de sites douteux, aucun réseau social, ...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/11/2010, 15h50
  2. Réponses: 2
    Dernier message: 06/10/2009, 23h41
  3. [MySQL] Variable php dans code sql pour désigner le nom du champ
    Par prophen dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/05/2008, 13h46
  4. [SQL] Erreur dans code PHP
    Par Mans91 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 27/06/2007, 10h08
  5. [MySQL] Erreur dans code php
    Par Badr3am dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 31/01/2006, 22h16

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