Maison >développement back-end >tutoriel php >Pourquoi mon appel `file_get_contents()` échoue-t-il avec « L'opération SSL a échoué avec le code 1 » et comment puis-je y remédier ?

Pourquoi mon appel `file_get_contents()` échoue-t-il avec « L'opération SSL a échoué avec le code 1 » et comment puis-je y remédier ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-19 00:24:10433parcourir

Why is my `file_get_contents()` call failing with

Échec de l'opération SSL avec le code 1 : compréhension et adressage

Lors de l'utilisation de file_get_contents() pour accéder à des sites Web sécurisés, des erreurs telles que "Opération SSL" échec avec le code 1" peut survenir. Cette erreur indique des problèmes de vérification de certificat ou de configuration OpenSSL.

Dans ce scénario particulier, le problème provenait des mesures de sécurité SSL améliorées de PHP 5.6. Pour résoudre ce problème, il était nécessaire de désactiver la vérification du certificat en définissant verify_peer et verify_peer_name sur false dans les options de contexte de la requête :

$arrContextOptions = array(
    "ssl" => array(
        "verify_peer" => false,
        "verify_peer_name" => false,
    ),
);

$response = file_get_contents($url, false, stream_context_create($arrContextOptions));

Attention : Il est important de noter que la désactivation de la vérification du certificat peut avoir de sérieuses implications en matière de sécurité, car cela ouvre la possibilité d’attaques de l’homme du milieu (MITM). N'utilisez cette solution que si vous comprenez parfaitement les risques potentiels et n'avez pas d'autres options viables.

Dans le cas décrit, la désactivation de la vérification du certificat a résolu le problème, permettant à la demande d'aboutir. Cependant, il est toujours recommandé d'enquêter sur la cause sous-jacente des échecs SSL et de les résoudre correctement pour garantir une communication sécurisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn