Maison > développement back-end > tutoriel php > Comment corriger l'erreur « L'opération SSL a échoué avec le code 1 » dans « file_get_contents() » de PHP ?

Comment corriger l'erreur « L'opération SSL a échoué avec le code 1 » dans « file_get_contents() » de PHP ?

Linda Hamilton
Libérer: 2024-12-15 08:58:13
original
967 Les gens l'ont consulté

How to Fix

Dépannage de l'erreur de vérification du certificat SSL file_get_contents()

Lorsque vous tentez d'accéder à un service REST à l'aide de file_get_contents() dans PHP 5.6, vous pouvez rencontrer l'erreur "L'opération SSL a échoué avec le code 1" en raison d'un certificat plus strict vérification.

Description du problème
La page PHP de l'utilisateur tente de récupérer des données à partir d'un point de terminaison HTTPS à l'aide de file_get_contents(). Cependant, il échoue avec les erreurs suivantes :

  • Avertissement : l'opération SSL a échoué avec le code 1. Messages d'erreur OpenSSL : échec de la vérification du certificat
  • Avertissement : échec de l'activation du crypto
  • Avertissement : Échec de l'ouverture du flux : échec de l'opération

Root Parce que
PHP 5.6 a introduit une vérification SSL plus stricte par défaut, exigeant une validation précise du certificat. L'erreur indique que le client ne peut pas vérifier le certificat du serveur distant.

Résolution
Pour résoudre ce problème, un document PHP officiel sur les modifications d'OpenSSL dans la version 5.6 recommande de désactiver la vérification du certificat. Remarque : cette solution a des implications de sécurité importantes et ne doit être envisagée que dans des environnements contrôlés où la confiance entre le client et le serveur est établie.

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

$response = file_get_contents("remote_url", false, stream_context_create($arrContextOptions));
Copier après la connexion
  1. Créez un tableau ($arrContextOptions) pour configurer les options SSL.
  2. Définissez verify_peer sur false pour désactiver la vérification du certificat.
  3. Définissez verify_peer_name sur false pour désactiver la vérification du nom d'hôte.
  4. Créez un stream_context à l'aide du tableau $arrContextOptions.
  5. Passez le contexte du flux comme troisième paramètre à file_get_contents().

Remarque importante
La désactivation de la vérification du certificat SSL réduit la sécurité et peut exposer votre application à des écoutes clandestines et à d’autres failles de sécurité. Il est fortement recommandé de configurer correctement votre système pour utiliser des certificats SSL de confiance au lieu de recourir à cette solution de contournement.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal