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

  1. #1
    Membre du Club
    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
    Points : 59
    Points
    59
    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 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    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...

  3. #3
    Membre du Club
    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
    Points : 59
    Points
    59
    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 du Club
    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
    Points : 59
    Points
    59
    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 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    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.

  6. #6
    Membre du Club
    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
    Points : 59
    Points
    59
    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, ...

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

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

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    Par défaut
    Sur wamp il n'ya en théorie rien à configurer on l'installe et ca marche.

    Si tu es à l'aise avec easyphp pas de problème , mais il faut une version récente. Par contre windows xp va être un problème c'est à peut près certains. Idem pour windows 7 qui n'est plus supporté et qui verra de moins en moins de logiciel compatible.

    Si tu veux tenter une installation manuelle tu peux regarder ca : http://www.stashofcode.fr/installati...mysql-windows/

    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
    Tout à fait , le contexte sans faille n'existe pas , raison de plus pour minimiser les risque en ayant un serveur à jour.
    Si tout ton système est en vase clos , sans aucun accès possible de l'extérieur , pas de problème , il ne risque rien.
    Si il y'a un accès possible tu met en péril toute ton "infrastructure". A partir d'un apache ou d'un php pas à jour certains arrive a prendre le contrôle d'une machine (surtout si elle même n'est pas à jour) et après c'est open bar

  8. #8
    Membre du Club
    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
    Points : 59
    Points
    59
    Par défaut
    Pour ce que j'en fait de mon ordinateur et pour le temps que je reste connectée à internet, ça devrait le faire.
    Les quelques programmes (non mis à jour) que j'ai me suffisent sous xp.
    Mais forcément, un jour je ne pourrais plus surfer car plus aucun moyen de mettre à jour le navigateur, les activeX et autres.
    En attendant, depuis quelques années je rempli le petit cochon rose, à raison d'un euro par semaine, dans 2 ans j'aurai un modèle basique avec écran plat.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/11/2010, 16h50
  2. Réponses: 2
    Dernier message: 07/10/2009, 00h41
  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, 14h46
  4. [SQL] Erreur dans code PHP
    Par Mans91 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 27/06/2007, 11h08
  5. [MySQL] Erreur dans code php
    Par Badr3am dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 31/01/2006, 23h16

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