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 :

Curl Failed to connect to www.mon-site.com port 443: Connection timed out


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 496
    Par défaut Curl Failed to connect to www.mon-site.com port 443: Connection timed out
    Bonjour,

    Quand je veux récupérer le contenu d'une de mes page web avec CURL, j'ai le message d'erreur suivant :
    Failed to connect to www.mon-site.com port 443: Connection timed out
    Précisions :
    1. Je suis en mutualisé chez OVH
    2. Le script ci-dessous fonctionnait parfaitement il y 2 mois
    3. Il fonctionne avec d'autres URL qu'arizona-dream.com
    4. Il fonctionne parfaitement en local


    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
    $fichier_a_parser = 'https://www.arizona-dream.com'; 
    //$fichier_a_parser = 'https://www.google.com'; 
     
    $curl = curl_init(); // Initialiser CURL 
    curl_setopt($curl, CURLOPT_URL, $fichier_a_parser); // Définir l'adresse à ouvrir 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); // Suivre les redirections s'il y en a 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Permet de stocker dans la ligne suivante l'output dans la variable page 
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:98.0) Gecko/20100101 Firefox/98.0'); // Définition du header "User-Agent:" 
     
    $page = curl_exec($curl); // Exécuter 
     
    // Si erreur 
    if(curl_exec($curl) === false) { 
        echo 'Erreur Curl : ' .curl_error($curl); 
    } 
    else { 
        echo $page; 
    } 
     
    curl_close($curl); // Fermer pour libérer des ressources systèmes
    Quelqu'un aurai une idée ?

  2. #2
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonjour

    Tu essaies d'accéder à une URL en https et donc le port 443.

    Tu peux ignorer le contrôle SSL avec une commande comme ci-dessous. Note que, du coup, c'est comme si tu étais en http et donc sur une connexion non sécurisée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

  3. #3
    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
    Pour que curl soit capable d'accéder à des url sécurisé il faut lui donner un fichie rde certificat lui permettant de valider ou non les certificat qu'il essai de contacter :

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $certificate = "/var/curl/cacert.pem";
    curl_setopt($ch, CURLOPT_CAINFO, $certificate);
    curl_setopt($ch, CURLOPT_CAPATH, $certificate);
    Ce genre de fichier peut être trouvé ici : https://curl.se/docs/caextract.html

    L'autre solution comme l'évoque cavo789 c'est de dire à curl de ne pas vérifier les certificats. Ca peut être une solution acceptable si on est 100% certains de l'url qu'on interroge. Mais c'est généralement pas recommandé car on s'expose à plein de problème de sécurité.

    Citation Envoyé par cavo789 Voir le message
    Note que, du coup, c'est comme si tu étais en http et donc sur une connexion non sécurisée :
    Pas tout à fait , le contenu est toujours chiffré lors de la communication , il n'est en revanche plus authentifié.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 496
    Par défaut
    Bonjour et merci pour vos réponses.

    J'ai essayé les 2 solutions et cela ne fonctionne toujours pas.

    De plus, excusez moi, mais je suis dubitatif sur ces solutions car : Vous liez le problème au SSL mais dans ce cas, cela ne devrai pas fonctionner en locale et ni sur https://www.google.com ?

    Or, comme expliqué dans mon premier message, le script fonctionne en local ET sur d'autres url comme https://www.google.com

    Une autre piste ?

  5. #5
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonjour

    J'avoue ne pas comprendre ta phrase ci-dessous :

    Citation Envoyé par elcoyotos Voir le message
    Or, comme expliqué dans mon premier message, le script fonctionne en local ET sur d'autres url comme https://www.google.com
    Peux-tu essayer ton script (premier post) mais sur un site internet en http et pas https. Peux-tu confirmer que ton script fonctionne alors ?
    Si cela fonctionne (et cela devrait fonctionner), il faudrait trouver un site qui est accessible est en http et en https pour que tu puisses voir la différence de comportement.

  6. #6
    Membre éclairé Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 496
    Par défaut
    Je me suis certainement mal exprimé.

    Peut être est ce plus clair comme cela :


    1. Mon script fonctionne en local
    2. Mon script ne fonctionne pas depuis les serveurs d'OVH


    Donc, mon script (en local), accède bien à des url sécurisées.
    Ce n'est donc pas un problème lié à SSL ?

Discussions similaires

  1. [Python 3.X] Scrapy: TCP connection timed out: 10060 (site qui ne répond plus)
    Par Pearate dans le forum Général Python
    Réponses: 4
    Dernier message: 16/01/2020, 13h33
  2. [PHP 5.4] curl et php : (28): connect() timed out!
    Par yule dans le forum Langage
    Réponses: 0
    Dernier message: 19/08/2014, 20h49
  3. TestNG : Connection timed out
    Par onclezeb dans le forum Seam
    Réponses: 1
    Dernier message: 13/06/2008, 11h24
  4. Tâche cron et Connection timed out in headers ?
    Par sam_owm dans le forum Apache
    Réponses: 1
    Dernier message: 24/04/2008, 10h00
  5. [IdWhois] Connect Timed Out
    Par xenos dans le forum Delphi
    Réponses: 7
    Dernier message: 06/06/2006, 11h05

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