Bonjour à tous,
Vous allez peut être me dire "un classique" !! J'ai lu pas mal d'échanges sur ce sujet mais n'ai pas trouvé de solution.
Je m'occupe actuellement d'un outil commercial (PHP Mysql, développement à l'ancienne) permettant de saisir et de visualiser un ensemble de contrats souscrits par différents commerciaux et de générer des KPIs etc. Un second outil de saisie a été mis en place en parallèle. Afin de pouvoir visualiser tous les éléments sur une seule solution, une API a été mise en place pour pouvoir récupérer les datas, les vérifier et les insérer dans ma base.
Or, impossible d'accéder à la ressource via file_get_contents() ou cUrl.
Voici le code que j'utilise :
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://bailey.devconnectdigital.com/api/data/XXXXXXX',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_CONNECTTIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Cookie: bailey_digitalisation_session=XXXXXXXXXX'),
));
$response = curl_exec($curl);
curl_close($curl);
var_dump ( curl_getinfo($curl) ) . '
';
var_dump ( curl_errno($curl) ) . '
';
var_dump ( curl_error($curl) ) . '
';
var_dump ( $response );
exit();
Voici le retour d'erreur de curl :
`array(37) { ["url"]=> string(101) "https://bailey.devconnectdigital.com/api/data/XXXXXXXXXXXX" ["content_type"]=> NULL ["http_code"]=> int(0) ["header_size"]=> int(0) ["request_size"]=> int(0) ["filetime"]=> int(-1) ["ssl_verify_result"]=> int(0) ["redirect_count"]=> int(0) ["total_time"]=> float(130.332251) ["namelookup_time"]=> float(0.000633) ["connect_time"]=> float(0) ["pretransfer_time"]=> float(0) ["size_upload"]=> float(0) ["size_download"]=> float(0) ["speed_download"]=> float(0) ["speed_upload"]=> float(0) ["download_content_length"]=> float(-1) ["upload_content_length"]=> float(-1) ["starttransfer_time"]=> float(0) ["redirect_time"]=> float(0) ["redirect_url"]=> string(0) "" ["primary_ip"]=> string(0) "" ["certinfo"]=> array(0) { } ["primary_port"]=> int(0) ["local_ip"]=> string(0) "" ["local_port"]=> int(0) ["http_version"]=> int(0) ["protocol"]=> int(0) ["ssl_verifyresult"]=> int(0) ["scheme"]=> string(0) "" ["appconnect_time_us"]=> int(0) ["connect_time_us"]=> int(0) ["namelookup_time_us"]=> int(633) ["pretransfer_time_us"]=> int(0) ["redirect_time_us"]=> int(0) ["starttransfer_time_us"]=> int(0) ["total_time_us"]=> int(130332251) } int(7) string(80) "Failed to connect to bailey.devconnectdigital.com port 443: Connection timed out" bool(false)`
Au niveau du code, si j'utilise une API publique, aucun souci. Je récupère tout.
L'API en question m'authentifie avec un cookie et le code semble fonctionner lorsque l'émetteur de l'API le teste. Je n'ai pas une grande expérience dans ce genre de requêtes cUrl et d'API sécurisées. Me voila bloqué.
Quelqu'un saurait-il me guider pour établir un diagnostic fiable ? Je ne sais pas où chercher.
L'erreur est assez lunaire. Est-ce que cela peut venir d'un blocage de connexion sortantes de mon côté ? L'authentification mal intégrée (à savoir que si j'enlève du curl le cookie dans HTTPHeader, le résultat est identique) ? Un blocage de connexion entrantes à l'arrivée ?
L'URL de base est parfaitement accessible via le navigateur.
La solution est hébergée sur un Performance 1.
En espérant et en attendant une réponse, je vais aller essayer mes bouts de code sur un autre serveur d'un autre hébergeur… ça fera des infos supplémentaires j'imagine.
Merci beaucoup d'avance.
Romain
La solution est hébergée sur un Performance 1.
Bonjour,
Quel est votre n° de cluster d'hébergement web, svp ?
Est-ce que vous faites cet appel depuis une page web ou bien dans l'environnement ssh de votre hébergement Pro/Perf ?
Bonjour c'est un timeout donc certainement un blocage en sortie ou en entrée.
Dpuis mon poste c'est OK :
>telnet bailey.devconnectdigital.com 443
Trying 57.128.92.122…
Connected to bailey.devconnectdigital.com.
Escape character is '^]'.
Et depuis un dédié OVH aussi :
>telnet bailey.devconnectdigital.com 443
Trying 57.128.92.122…
Connected to bailey.devconnectdigital.com.
Escape character is '^]'.
Est-ce que vous faites cet appel depuis une page web ou bien dans l'environnement ssh de votre hébergement Pro/Perf ?
Bonjour et Merci :)
Le cluster est le cluster031.
Je fais cet appel depuis un script PHP dans une page web.
Le but ultime est de la lancé via un CRON une fois stable.
:'(
Donc selon ce que tu me dis, en l’occurrence, on pencherait plus sur de la sortie ? ![]()
Donc le mutualisé ? J'ai vérifié les pare-feu etc… toutes ces choses sont désactivées.
Ok, donc je viens de mettre mon script sur un VPS chez IONOS et la connexion fonctionne. Mon contenu s'affiche…
Pas forcement.
Il faudrait demander au 2 prestataires.
Le but ultime est de la lancé via un CRON une fois stable.
Si votre cron est bridé dans les appels de sortie externes, hébergez votre script final dans une page web de votre site, et invoquez cette page depuis votre cron.
C'est très différent lorsque c'est le moteur d'exécution web PHP qui fait l'opération ou bien votre ssh ou cron.
Sachez que l'adresse IP de sortie de cluster031 est 141.94.87.67, c'est ce que bailey.devconnectdigital.com voit comme adresse partenaire lors de la connexion. Si leur firewall bloque cette adresse, ça explique le timeout.
Référence: https://help.ovhcloud.com/csm/fr-web-hosting-clusters-ip-addresses?id=kb_article_view&sysparm_article=KB0052378
Merci à vous deux pour vos réponses.
Le partenaire m'assure que leur pare-feu ne bloque pas l'IP.
Vu le test avec IONOS, j'aurais tendance à les croire.
Si votre cron est bridé dans les appels de sortie externes, hébergez votre script final dans une page web de votre site, et invoquez cette page depuis votre cron.
C'est très différent lorsque c'est le moteur d'exécution web PHP qui fait l'opération ou bien votre ssh ou cron.
Ah tiens, je ne savais pas. Je vais tester cela.
Est-ce que le support technique à la possibilité de rectifier un éventuel blocage en sortie ?
Est-ce que le support technique à la possibilité de rectifier un éventuel blocage en sortie ?
Ticket incident: "_Mon hébergement sur cluster031 n'arrive pas à atteindre 57.128.92.122:443 et le partenaire me dit ne pas bloquer l'adresse IP 141.94.87.67_
_Merci de débloquer ceci_"
Première étape : J'appelle depuis mon interface OVH un script PHP hébergé chez IONOS.
Celui-ci lis le JSON chez mon partenaire sans souci et en fait une copie sur le FTP.
Deuxième étape : je vais lire la copie du JSON sur le FTP IONOS depuis l'interface OVH pour mettre à jour la base de données…
C'est la seule chose que j'arrive à faire. De la pure cavalerie…
Et évidemment, j'oublie l'automatisation pour le moment… ![]()
J'suis perdu. Je suis vraiment pas fiero.
J'suis perdu.
Faites un ticket incident. Peut-être aurez vous une réponse dans les 48h, si votre question est précise et concerne un dysfonctionnement.
J'avais fait un premier ticket "incident" en expliquant mon problème… Le support me répond ceci :
Vous pouvez consulter la configuration détaillée de nos serveurs à cette adresse : https://help.ovhcloud.com/csm/fr-web-hosting-technical-specifications?id=kb_article_view&sysparm_article=KB0052809
Nous proposons également une documentation complète concernant l'utilisation du fichier .ovhconfig et de la mise en place des versions PHP sur cette page : https://help.ovhcloud.com/csm/fr-web-hosting-change-php-version?id=kb_article_view&sysparm_article=KB0053013
Cela peut vous aider à vérifier la compatibilité de vos scripts avec l'hébergement choisi. La configuration mise en place sur le serveur ne peut être modifiée.
Dans certains cas, vous pouvez également avoir besoin de connaitre nos IP, et notamment l'IP "Gateway" afin de vérifier la raison pour laquelle une connexion sortante n'aboutit pas, en voici la liste : https://help.ovhcloud.com/csm/fr-web-hosting-clusters-ip-addresses?id=kb_article_view&sysparm_article=KB0052378
En effet, certains fournisseurs peuvent bloquer ou limite les connexions effectuées
Et après votre invitation, j'en ai fais un plus "directif"… on verra s'ils me répondent quelque chose qui peut me servir…
J'vous remercie en tout cas pour votre oeil
C'est gentil.
Bonjour,
est-ce que "bailey.devconnectdigital.com" vous appartient ou c'est un prestataire ou c'est quoi par rapport à vous ?
Est-ce que "bailey.devconnectdigital.com" est capable de vérifier les connexion effectué pour vérifier qu'ils ne bloquent pas le cluster sur lequelle vous êtes ?
Cordialement, janus57
Merci à vous,
Votre aide est précieuse. On dépasse de loin le champ de mes compétences là.
Je vais en discuter avec le prestataire.
Bonjour<br /><br /><blockquote><br />Selon eux, ils ont vérifié en effet qu'ils ne me mettaient pas de bâton dans les roues.<br /></blockquote><br />ils ont bien vérifié la bonne IP ?<br />Car le dernier qui est venu sur le forum c'était bien un blocage côté site dans un pare-feu chez eux.<br /><br />Perso depuis le cluster021 c'est fonctionnel.<br />Et depuis le cluster010 (merci @Fritz2cat) bah là j'ai un système anti-robot (imunify360-webshield) qui bloque le curl<br />[code]<br /> <br /><html></html><br /><head></head><br /><meta charset="utf-8" /><br /><meta name="robots" content="noindex, nofollow" /><br /><title>One moment, please...</title><br /><style><br>body {<br> background: #F6F7F8;<br> color: #303131;<br> font-family: sans-serif;<br> margin-top: 45vh;<br> text-align: center;<br>}<br></style><br /><br /><body><br /><h2>Please wait while your request is being verified...</h2><br /><form id="wsidchk-form" style="display:none;"><br /><input type="hidden" id="wsidchk" name="wsidchk" /><br /></form><br /><br /></body><br /><br />[/code]<br />cluster029 : idem bloqué par un système anti-bot (We have noticed an unusual activity from your <b>IP 91.134.248.192</b> and blocked access to this website.)<br />URL testé : https://bailey.devconnectdigital.com/api/data/<br /><br />Et en général quand OVH bloque un site c'est sur l'ensemble des clusters par principe d'uniformité, donc perso j'aurais plutôt tendance à dire que le blocage est du côté du prestataire qui gère l'infra de "devconnectdigital" (à savoir "havetdigital").<br /><br />Cordialement, janus57