国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table des matières
Pourquoi cela échoue
Utiliser les autorités de certification natives
Téléchargez et conservez un fichier cacert.pem
Maison développement back-end tutoriel php Comment résoudre les problèmes d'autorité de certification PHP Curl HTTPS sous Windows

Comment résoudre les problèmes d'autorité de certification PHP Curl HTTPS sous Windows

Nov 11, 2024 pm 12:24 PM
php

Une requête HTTPS réussie implique que le client HTTP valide le Certificat TLS fourni par le serveur par rapport à une liste de racines connues et fiables certificats. L'extension PHP Curl n'est pas différente?; la boucle L'extension utilise libcurl pour effectuer la requête HTTPS, et libcurl, qui à son tour utilise une bibliothèque TLS telle qu'OpenSSL pour valider la requête.

Comment résoudre les problèmes dautorité de certification PHP Curl HTTPS sous Windows

L'extension Curl nécessite un fichier valide contenant tout le certificats racines de confiance pour terminer la validation HTTPS et PHP expose cela sous forme de directive dans le fichier php.ini.

Sous Linux, BSD et macOS, libcurl peut utiliser par défaut la racine du système certificats, mais cela n'est pas possible sous Windows car Windows ne ne vient pas avec un seul fichier contenant toute la racine du système certificats.

Cet article traite de deux approches possibles pour réussir à effectuer des requêtes HTTPS avec l'extension Curl, et de ce qu'il ne faut pas faire qui peut laisser les requêtes HTTPS non sécurisées.

Pourquoi cela échoue

$ch?=?curl_init('https://php.watch');??
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?true);??
curl_exec($ch);?//?false??

curl_error($ch);
//?SSL?certificate?problem:?unable?to?get?local?issuer?certificate

Si les appels curl_exec échouent avec une fausse réponse, et si curl_error indique un problème de certificat SSL?: impossible d'obtenir une erreur de certificat de l'émetteur local, cela signifie que Curl n'a pas re?u de fichier contenant les certificats racine, ou n'a pas pu le découvrir.

Cette erreur est rare sur les systèmes Linux, BSD et macOS, mais assez courant sous Windows car il n'y a pas de fichier désigné pour obtenir la racine certificats, et PHP ne fournit pas de liste de certificats racine sur son propre.

La solution est de fournir un fichier contenant le root à jour certificats, ou idéalement, laissez Curl analyser le magasin racine natif que le système d'exploitation sous-jacent fournit.

Utiliser les autorités de certification natives

Sur Curl 7.71 et versions ultérieures, il est possible de définir un Curl option pour demander à Curl d'utiliser les certificats racine natifs (système). Cela fonctionne même sous Windows, où Curl analyse les certificats racine du système et les utilise.

Lorsque l'option CURLOPT_SSL_OPTIONS est définie sur CURLSSLOPT_NATIVE_CA ou un masque de bits contenant ces bits, Curl tente d'utiliser le natif magasin de certificats racine, sous réserve des capacités et des versions du bibliothèque TLS sous-jacente.

Il s'agit du correctif recommandé, si l'extension Curl est construite avec Curl 7.71 ou version ultérieure et PHP 8.2 et version ultérieure.

?$ch?=?curl_init('https://php.watch');
??curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?true);
???curl_setopt($ch,?CURLOPT_SSL_OPTIONS,?CURLSSLOPT_NATIVE_CA);
????curl_exec($ch);

Notez que l'extrait ci-dessus ne vérifie pas la La version Curl et le PHP version, et suppose que les exigences des versions PHP et Curl sont remplies. Le Voici un exemple montrant l'ajout conditionnel de l'option Curl?:

$ch?=?curl_init('https://php.watch');??
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?true);??
if?(defined('CURLSSLOPT_NATIVE_CA')??
??&&?version_compare(curl_version()['version'],?'7.71',?'>='))?{??
????curl_setopt($ch,?CURLOPT_SSL_OPTIONS,?CURLSSLOPT_NATIVE_CA);
}??
curl_exec($ch);

Téléchargez et conservez un fichier cacert.pem

Pour les applications exécutées sur des versions PHP antérieures à 8.2 (où CURLSSLOPT_NATIVE_CA constante n'est pas disponible), ou lorsque la version de Curl est antérieure à 7.71, la solution alternative recommandée est de télécharger un fichier compatible Curl fichier de certificat racine et configurez PHP ou la requête Curl pour l'utiliser.

Le projet Curl tient à jour une liste de certificats. Voir Certificats CA extraits de Mozilla.

  1. Téléchargez le fichier cacert.pem

  2. Déplacez le fichier vers un répertoire accessible par PHP et le serveur web. Par exemple, vers C:/php/cacert.pem.
  3. Modifiez le fichier php.ini et modifiez l'entrée curl.cainfo pour pointer vers le chemin absolu vers le fichier cacert.pem.

  4. $ch?=?curl_init('https://php.watch');??
    curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?true);??
    curl_exec($ch);?//?false??
    
    curl_error($ch);
    //?SSL?certificate?problem:?unable?to?get?local?issuer?certificate
  5. Facultativement, redémarrez le serveur Web (tel qu'Apache) pour recharger l'INI fichier.

L'inconvénient de cette approche est que le fichier cacert.pem doit être mis à jour régulièrement. Le cacert.pem Le fichier fourni par le projet Curl, par exemple, est extrait de la racine magasin maintenu par Mozilla. En moyenne, cette liste et le fichier obtiennent mis à jour 4 à 5 fois par an. Pour garantir la compatibilité avec la dernière version root liste des certificats, assurez-vous de mettre à jour la copie locale de ce fichier régulièrement

S'il n'est pas possible de modifier le fichier INI, précisez également le chemin absolu du fichier cacert.pem dans une requête Curl?:

?$ch?=?curl_init('https://php.watch');
??curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?true);
???curl_setopt($ch,?CURLOPT_SSL_OPTIONS,?CURLSSLOPT_NATIVE_CA);
????curl_exec($ch);

Sur PHP 8.2 ?avec Curl 7.77 , il est possible d'obtenir une cha?ne contenant le contenu de cacert.pem avec l'option CURLOPT_CAINFO_BLOB.

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pourquoi nous commen?ons: un guide PHP Pourquoi nous commen?ons: un guide PHP Jul 15, 2025 am 02:48 AM

PhhasthreocommentStyles: //,#forsingle-lineand/.../formulti-line.USECOMENTSTOEXPLAINWHYCODEEXISTS,NOTHATITOES.Marktodo/fixmeitemsanddisableCodeTemporairementDuringDebugging.VoidOverCormentSimplelogic.

Comment installer PHP sur Windows Comment installer PHP sur Windows Jul 15, 2025 am 02:46 AM

Les étapes clés pour installer PHP sur Windows incluent: 1. Téléchargez la version PHP appropriée et décompressez-la. Il est recommandé d'utiliser la version ThreadSafe avec Apache ou NONTHREADSAFE avec Nginx; 2. Configurez le fichier php.ini et renommez PHP.ini-développement ou php.ini-production à php.ini; 3. Ajouter le chemin PHP au chemin variable de l'environnement système pour l'utilisation de la ligne de commande; 4. Testez si PHP est installé avec succès, exécutez PHP-V via la ligne de commande et exécutez le serveur intégré pour tester les capacités d'analyse; 5. Si vous utilisez Apache, vous devez configurer P dans httpd.conf

Syntaxe PHP: les bases Syntaxe PHP: les bases Jul 15, 2025 am 02:46 AM

La syntaxe de base de PHP comprend quatre points clés: 1. La balise PHP doit être terminée et l'utilisation de balises complètes est recommandée; 2. L'écho et l'impression sont couramment utilisés pour le contenu de sortie, parmi lesquels Echo prend en charge plusieurs paramètres et est plus efficace; 3. Les méthodes d'annotation incluent //, # et //, pour améliorer la lisibilité du code; 4. Chaque déclaration doit se terminer par un point-virgule, et les espaces et les pauses de ligne n'affectent pas l'exécution mais affectent la lisibilité. La ma?trise de ces règles de base peut aider à rédiger un code PHP clair et stable.

à quoi sert PHP et à quoi sert-il? à quoi sert PHP et à quoi sert-il? Jul 16, 2025 am 03:45 AM

Phpisaserver-sidescriptingNanguageUsedForwebDevelopment, en particulierdoyNamicWebsitesandcmsPlatformslikewordpress.itrunsonTheServer, processData, interactswithdatabases, andsendshtmltobrowsers.commonusingincludeUserAuthentication, e-commerceplatforms, pour pour

Guide d'installation PHP 8 Guide d'installation PHP 8 Jul 16, 2025 am 03:41 AM

Les étapes pour installer PHP8 sur Ubuntu sont: 1. Mettez à jour la liste des packages logiciels; 2. Installez les composants PHP8 et BASIC; 3. Vérifiez la version pour confirmer que l'installation est réussie; 4. Installez des modules supplémentaires au besoin. Les utilisateurs de Windows peuvent télécharger et décompresser le package ZIP, puis modifier le fichier de configuration, activer les extensions et ajouter le chemin d'accès aux variables d'environnement. Les utilisateurs de MacOS recommandent d'utiliser HomeBrew pour installer et effectuer des étapes telles que l'ajout de TAP, l'installation de PHP8, la définition de la version par défaut et la vérification de la version. Bien que les méthodes d'installation soient différentes dans différents systèmes, le processus est clair, vous pouvez donc choisir la bonne méthode en fonction de l'objectif.

Votre premier script PHP: une introduction pratique Votre premier script PHP: une introduction pratique Jul 16, 2025 am 03:42 AM

Comment commencer à écrire votre premier script PHP? Tout d'abord, configurez l'environnement de développement local, installez XAMPP / MAMP / LAMP et utilisez un éditeur de texte pour comprendre le principe d'exécution du serveur. Deuxièmement, créez un fichier appelé hello.php, entrez le code de base et exécutez le test. Troisièmement, apprenez à utiliser PHP et HTML pour obtenir une sortie de contenu dynamique. Enfin, faites attention aux erreurs communes telles que les demi-colons manquants, les problèmes de citation et les erreurs d'extension de fichier, et activer les rapports d'erreur pour le débogage.

Comment gérez-vous les opérations de fichiers (lecture / écriture) dans PHP? Comment gérez-vous les opérations de fichiers (lecture / écriture) dans PHP? Jul 16, 2025 am 03:48 AM

TohandlefileoperationsInPhp, usApproProptofetFunctionsandModes.1.toreaDafile, usefile_get_contents () forsmallfilesorfgets () inaloopforline-by-lineprocessing.2

Python If Else Exemple Python If Else Exemple Jul 15, 2025 am 02:55 AM

La clé pour rédiger les instructions IFELSE de Python est de comprendre la structure et les détails logiques. 1. L'infrastructure consiste à exécuter un morceau de code si des conditions sont établies, sinon la pièce ELSE est exécutée, ELLS est facultatif; 2. Le jugement multi-conditions est mis en ?uvre avec ELIF, et il est exécuté séquentiellement et arrêté une fois qu'il est atteint; 3. Nested Si c'est utilisé pour un jugement supplémentaire de subdivision, il est recommandé de ne pas dépasser deux couches; 4. Une expression ternaire peut être utilisée pour remplacer Ifelse simple dans un scénario simple. Ce n'est qu'en faisant attention à l'indentation, à l'ordre conditionnel et à l'intégrité logique que nous pouvons écrire des codes de jugement clair et stable.

See all articles