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

Comment corriger les erreurs « L'opération SSL a échoué avec le code 1 » lors de l'utilisation de « file_get_contents() » en PHP ?

Barbara Streisand
Libérer: 2024-12-25 10:31:17
original
716 Les gens l'ont consulté

How to Fix

Dépannage des problèmes SSL avec file_get_contents()

Dans PHP 5.6, des modifications ont été introduites dans la gestion d'OpenSSL qui ont parfois conduit à des erreurs telles que "SSL l'opération a échoué avec le code 1." Un de ces cas, signalé par un utilisateur, s'est produit lors d'une tentative d'accès à un service REST à l'aide de file_get_contents().

Description du problème :

L'utilisateur a rencontré une erreur lors de tenter de récupérer des données d'un service REST via file_get_contents() :

$response = file_get_contents("https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json");
Copier après la connexion

Le message d'erreur affiché :

Warning: file_get_contents(): SSL operation failed with code 1.
OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Copier après la connexion

Solution :

Pour résoudre ce problème, l'utilisateur a mis en œuvre les étapes suivantes :

  1. Référencé le PHP 5.6 Documentation sur la migration OpenSSL sur http://php.net/manual/en/migration56.openssl.php.
  2. Découverte du paramètre supplémentaire "verify_peer_name" qui devait être défini sur false.
  3. Ajustement de leur code PHP pour inclure les paramètres mis à jour :
$arrContextOptions=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);

$response = file_get_contents("https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json", false, stream_context_create($arrContextOptions));
Copier après la connexion

Important Remarque :

L'utilisateur a reconnu les implications en matière de sécurité de la désactivation de la vérification SSL. Cela ne doit être fait que si l'utilisateur comprend parfaitement les risques et ne dispose d'aucune autre option de configuration viable. Pour une sécurité optimale, activez la vérification du certificat SSL par défaut.

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 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