file_get_contents(): SSL opération a échoué avec le code 1 (certificat de vérifier échoué)
J'ai installé WAMP 3.0.4 et suis en train d'écrire un script PHP qui se connecte à une source externe de HTTPS service web. Mais cela renvoie l'erreur:
Warning: file_get_contents(): SSL opération a échoué avec le code 1. OpenSSL messages d'Erreur: erreur:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificat de vérifier échoué
J'ai écrit un petit script qui illustre le problème:
<?php
$auth = base64_encode('username:password');
$aContext = array(
'http' => array(
'proxy' => 'tcp://proxyip:proxyport',
'request_fulluri' => true,
'header' => 'Proxy-Authorization: Basic $auth'
),
'SSL' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true,
'cafile' => 'C:/wamp/certificates/cacert.pem'
)
);
$cxContext = stream_context_create($aContext);
$sFile = file_get_contents("https://www.google.com", False, $cxContext);
echo $sFile;
?>
Il est obligatoire d'utiliser un serveur proxy.
Comme on peut le voir, j'ai essayé l'installation d'un des certificats racine paquet et aussi l'ajout de verify_peer à false (non pas que je le ferais dans la production), mais encore je reçois cette erreur.
Que peut être clairement vu de ce qui précède, je suis un Apache /WAMP novice. Quelqu'un peut peut-être expliquer ce que je suis absent?
Vous devez vous connecter pour publier un commentaire.
Si vous voulez désactiver la vérification de la connexion SSL, vous pouvez utiliser:
Et à l'intérieur de votre code:
Toutefois notez que cela signifie que personne n'est à vous garantir que les données que vous obtenez sont authentiques (depuis le certificat ssl n'est PAS vérifiée).
Si vous voulez vérifier le certificat, vous devez utiliser le certificats racine que dans votre question, cependant, vous avez dit que vous travaillez avec WAMP, de sorte que le chemin d'accès à votre cafile doit être quelque chose comme:
Si vous n'avez pas besoin du proxy juste enlever si de votre demande.
Tout sur MAMP sur mac os, il suffit de redémarrer serveur MAMP résolu ce problème pour moi.