[RESOLU] file_get_contents avec https

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] file_get_contents avec https

Re: [RESOLU] file_get_contents avec https

par @rthur » 29 déc. 2015, 20:40

;)

Re: [RESOLU] file_get_contents avec https

par gillus14 » 29 déc. 2015, 18:41

@rthur ne dit on pas le roi Arthur !!!
bougre de crétin que je suis cela faisait deux jours que j'essayais, pensant qu'il s'agissait d'erreur php, certificat ou dans le php.ini.

Mais non bien plus simple, juste mon firewall trop restrictif.

Un grand merci pour le coup de main, même si cela était si simple je crois que j'y serais encore à la Saint Glinglin.

Re: file_get_contents avec https

par @rthur » 29 déc. 2015, 15:02

Tu as peut être un firewall en amont de ton serveur qui bloque les connexions SSL (port 443), contacte ton hébergeur.
As-tu essayé un wget en ligne de commande, si tu as un accès SSH sur ton serveur pour voir si il passe ?

Re: file_get_contents avec https

par gillus14 » 29 déc. 2015, 13:03

en réponse à echo file_get_contents('https://www.google.com/');

voilà ce que j'obtiens dans le log
[Tue Dec 29 11:56:15.540643 2015] [:error] [pid 29717] [client xx.xx.xx.x:1910] PHP Warning: file_get_contents(https://www.google.com/): failed to open stream: Connection timed out in

Et cela quelque soit le site demandé google, example ou autre

Re: file_get_contents avec https

par @rthur » 29 déc. 2015, 12:44

Si tu testes mon code, quel est le message d'erreur exact ?

Si le pb ne se fait que sur l'url que tu cherches à avoir, peut être que le serveur distant bloque les requêtes directes et attend un user-agent valide par exemple, dans ce cas tu serais obliger d'utiliser Curl.

Re: file_get_contents avec https

par gillus14 » 29 déc. 2015, 12:20

Merci pour la réponse

pour les log désolé j'avais oublié de les indiqués "fail to open stream"
php info
openssl
OpenSSL support enabled
OpenSSL Library Version OpenSSL 1.0.1k 8 Jan 2015
OpenSSL Header Version OpenSSL 1.0.1k 8 Jan 2015
Openssl default config /usr/lib/ssl/openssl.cnf

Et avec ou sans déclaration de contexte.

Merci pour ton aide

Re: file_get_contents avec https

par @rthur » 29 déc. 2015, 12:08

Bonjour,

Si tu as bien openssl activé avec PHP (cf phpinfo() ), moi j'arrive à y accéder sans déclarer de contexte :
<?php
echo file_get_contents('https://www.google.com/');
Sinon, regarde dans les logs pour connaitre le message d'erreur car sans c'est difficile de trouver le soucis.

file_get_contents avec https

par gillus14 » 29 déc. 2015, 11:35

Bonjour à tous,

Je n'arrive pas à obtenir une page d'un serveur distant via file_get_contents("https://www.google.com/").
SVP ne me parler pas de curl.

Pour les certificats, j'ai pris ceux du navigateur, je ne suis pas sûr que cela soit correcte, mais de toute façon j'ai également essayé avec des certificats valides via d'autres site

Je précise
- je suis PHP Version 5.6.14 sous Debian jessie
- sur le même serveur la fonction fonctionne bien (allow_url_fopen est à on)
- j'ai essayé beaucoup de chose mais rien à faire exemple ci-dessous

Code : Tout sélectionner

<?php $uri = 'https://www.toto.com/index.php'; $cafile = '/etc/ssl/certs/toto.crt'; $ctx = stream_context_create(['ssl' => [ 'cafile' => $cafile, 'verify_peer' => true, 'ciphers' => 'HIGH:!SSLv2:!SSLv3', 'disable_compression' => true, 'CN_match' => 'toto.com' ]]); $section = file_get_contents($uri, FALSE, $ctx); var_dump($section); ?>
Pourriez-vous me dire ce qui ne vas pas ?
pour essai j'essaie de obtenir https://www.google.com/ ou https://www.example.com/

D'avance merci de votre aide