Admin/Dev

15
Août
2018

Effectuer des requêtes via PHP vers un serveur HTTPS non certifié

Publié par sky

Suite à mon article sur l'envoi des données JSON en POST avec PHP, j'ai reçu un e-mail d'un lecteur souhaitant mettre en place ce code sur son serveur local. Détail intéressant, le serveur local tourne en HTTPS, ce qui est une bonne chose, cependant il ne dispose pas de certificat, ce qui est tout à faire normal pour un serveur local.

Et dans ce cas, la fonction file_get_contents renvoit une erreur

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in...

Il est donc nécessaire de compléter les options de contexte afin d'indiquer que SSL ne doit pas vérifier le certificat. Le protocole SSL dispose de ses propres paramètres dans une section dédiée

$options = array(
    'http' => array(
        'method'  => 'POST',
        'header'  => "Content-Type: application/json",
        'ignore_errors' => true,
        'timeout' =>  10,
        'content' => json_encode($data),
    ),
    'ssl' => array(
            "verify_peer"=>false,
            "verify_peer_name"=>false,
    ),
);

Les options de contexte pour SSL sont nombreuses et vous permettront d'adapter au mieux la sécurité associée à vos requêtes. La liste est disponible sur cette page du manuel PHP.

 
Sommaire de la série
 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Ouvrir le panneau de gestion des cookies
Fermer le panneau
Ce site utilise des cookies pour assurer son bon fonctionnement. Il utilise aussi des cookies issues de services tiers permettant de proposer des fonctionnalités avancées. À tout moment, vous pouvez choisir quels services vous souhaitez activer ou refuser, afin de retirer votre consentement quant à l'utilisation des cookies.
 
Personnalisation des services
Vous êtes libre de choisir quels services vous souhaitez activer. En autorisant ces services tiers, vous acceptez le dépôt et la lecture de cookies et l'utilisation de technologies de suivi nécessaires à leur bon fonctionnement. En retirant votre consentement pour certains de ces services, certaines fonctionnalités du site peuvent ne plus fonctionner.
Navigation du site  En savoir plus
Le site écrit un cookie de session permettant son bon fonctionnement et aidant à la navigation. Il ne peut être désactivé.
Utilisation : 1 cookie, enregistre l'identifiant de la session.
Durée de vie : Le cookie est présent pendant toute la session sur le site. Il devient obsolète après 24 minutes d'inactivité.
Obligatoire
Popup Média
Afficher des vidéos depuis Yoube ou Dailymotion.
 
Tout accepter Tout refuser Gérer