WampServer

Apache, PHP, MySQL on Windows 

 
  • Accueil forum
  • Retour à WampServer
  • presentation
  • Download
  • Addons
  • Formations
  • Alter Way

 
Voir le sujet: Précédent•Suivant
Aller à : Liste des Forums•Liste des messages•Nouvelle discussion•Recherche•Connexion•Imprimer la vue
Curl PHP sous VirtualHost SSL renvoi une erreur
Envoyé par: Fred24 (---.w86-234.abo.wanadoo.fr)
Date: 07 October 2024 à 17:52

Bonjour à tous,
Je reviens vers vous pour un problème simple à priori mais qui ne fonctionne pas chez moi.

J'utilise Curl en php afin de tester mes propres api (OAuth ou autre).
Concrètement, mon serveur utilise une requête curl pour interroger sa propre api.

Tout fonctionnait bien jusqu’à ce que je passe mes virtualhosts en SSL.

A présent, lorsque j’envoie une requête je reçois ce message d'erreur:
CURL error : SSL certificate problem: unable to get local issuer certificate

J'ai donc suivi le guide d'installation de php : [www.php.net]
1. Téléchargement du fichier cacert.pem depuis [curl.se].
2. Modification de la directive PHP : curl.cainfo="c:/wamp/bin/certificats/cacert.pem"
3. Relancer wampserver

Seulement, après avoir fait cela, j’obtient toujours la même erreur.

Pour informations, lorsque je travaille en ligne sur mes serveurs SSL tout fonctionne bien. Je veux dire par là que mon code php est correcte et que mes requêtes Curl le sont également.

Si quelqu'un avait une piste, je lui en serait très reconnaissant.

Cordialement,
Fred

Ma config : Windows 10 (x64) | Wamp 3.3.6 (x64) | Apache 2.4.54.2 | Php 8.1.13 | Mysql 8.0.31 | PhpMyAdmin 5.2.0 | Netbeans IDE 18

Options: Répondre•Citer ce Message
Re: Curl PHP sous VirtualHost SSL renvoi une erreur
Envoyé par: Otomatic (Modérateur)
Date: 07 October 2024 à 18:13

Bonjour,

> 2. Modification de la directive PHP : curl.cainfo="c:/wamp/bin/certificats/cacert.pem"

Dans quel fichier de la version PHP utilisée ?
Si PHP est utilisé en tant que module Apache, il faut le faire dans le fichier phpForApache.ini
Si PHP est utilisé en mode FCGI, il faut le faire dans le fichier php.ini

---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: Curl PHP sous VirtualHost SSL renvoi une erreur
Envoyé par: Fred24 (---.w86-234.abo.wanadoo.fr)
Date: 08 October 2024 à 09:33

Bonjour,
Merci de votre réponse rapide.

Il est utilisé en tant que module apache.
J'ai modifié cette directive dans les deux fichiers mais rien y fait.

Par contre, j'ai remarqué que dans le menu "Wamp > Apache 2.4.54.2 > Modules Apache" le "ssl_module" est fiché d'une crois rouge, alors que dans mon "Wamp\bin\apache\apache2.4.54.2\conf\httpd.conf" la directive est bien décommentée et le module est bien chargé.

Ma config : Windows 10 (x64) | Wamp 3.3.6 (x64) | Apache 2.4.54.2 | Php 8.1.13 | Mysql 8.0.31 | PhpMyAdmin 5.2.0 | Netbeans IDE 18

Options: Répondre•Citer ce Message
Re: Curl PHP sous VirtualHost SSL renvoi une erreur
Envoyé par: Otomatic (Modérateur)
Date: 08 October 2024 à 09:52

Bonjour,

Comme on est en mode https/ssl, la croix rouge indique que le module ne peut pas être désactivé.

---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: Curl PHP sous VirtualHost SSL renvoi une erreur
Envoyé par: Fred24 (---.w86-234.abo.wanadoo.fr)
Date: 08 October 2024 à 10:01

Très bien. Je n'avais pas compris. Merci pour cette information.

Ma config : Windows 10 (x64) | Wamp 3.3.6 (x64) | Apache 2.4.54.2 | Php 8.1.13 | Mysql 8.0.31 | PhpMyAdmin 5.2.0 | Netbeans IDE 18

Options: Répondre•Citer ce Message
Re: Curl PHP sous VirtualHost SSL renvoi une erreur
Envoyé par: Fred24 (---.w86-234.abo.wanadoo.fr)
Date: 09 October 2024 à 09:55

Peut-être ai je mal généré mon certificat via la méthode" manuel" ?

Voici le résultat de mes tests : (je ne met qu'un seul slash après le protocole http(s) pour la lisibilité et la compréhension)
---------- Postulats ----------
HttpLocal = "http:/www.mon-site-local.home"
HttpsLocal = "https:/www.mon-site-local.home"
HttpsOnlLine = "https:/www.mon-site-online.fr"
CurlError = "SSL certificate problem: unable to get local issuer certificate"
CurlSuccess = "Aucune erreur"

---------- Tests avec le curl.cainfo non renseigné (phpForApache.ini) ----------
de HttpLocal vers HttpLocal => CurlSuccess
de HttpLocal vers HttpsLocal => CurlError
de HttpLocal vers HttpsOnlLine => CurlError

de HttpsLocal vers HttpLocal => CurlSuccess
de HttpsLocal vers HttpsLocal => CurlError
de HttpsLocal vers HttpsOnlLine => CurlError

---------- Tests avec le curl.cainfo renseigné (phpForApache.ini) ----------
de HttpLocal vers HttpLocal => CurlSuccess
de HttpLocal vers HttpsLocal => CurlError
de HttpLocal vers HttpsOnlLine => CurlSuccess

de HttpsLocal vers HttpLocal => CurlSuccess
de HttpsLocal vers HttpsLocal => CurlError
de HttpsLocal vers HttpsOnlLine => CurlSuccess

Il se peut également que cela vienne du fait que le certificat soit auto-signé, ce qui nous oblige a ajouter une exception au navigateur pour atteindre le site local https.
J'ai donc ajouté la clé de mon-site-local.home-certonly.pem dans le fichier cacert.pem.

Et là j'obtiens l'erreur curl suivante :
SSL: no alternative certificate subject name matches target host name 'www.mon-site-local.home'".

Je pense me rapprocher de la solution.
Mon certificat est défini pour le nom de domaine "mon-site-local.home" et non "www.mon-site-local.home".
Donc lorsque ma requête curl interroge "https:/mon-site-local.home" tout fonctionne.
Par contre, c'est un échec lorsque j'interroge "https:/www.mon-site-local.home".

J'ai donc essayé d'ajouter un ServerAlias dans le httpd-ssl.conf mais cela ne fonctionne pas.
Je tiens à signaler que ce ServerAlias est également définie dans le VirtualHost du port 80.

Y a t-il un moyen pour définir un ServerAlias fonctionnel dans mon VirtualHost SSL?

Cordialement,

Ma config : Windows 10 (x64) | Wamp 3.3.6 (x64) | Apache 2.4.54.2 | Php 8.1.13 | Mysql 8.0.31 | PhpMyAdmin 5.2.0 | Netbeans IDE 18

Options: Répondre•Citer ce Message
Re: Curl PHP sous VirtualHost SSL renvoi une erreur
Envoyé par: Otomatic (Modérateur)
Date: 09 October 2024 à 11:29

Bonjour,

Dans le génération du certificat Self Signed, onglet Cerificate Domain Name, en plus de Certificate Domain Name, dans la colonne Certificate SAN (Subject Alternate Names) vous pouvez mettre autant de Domain Name que vous voulez, par exemple le même site mais avec www.

Les certificats auto-signés obligent à mettre une exception dans les navigateurs.
C'est expliqué dans Clic-Droit -> Aide -> Aide mode HTTPS Wampserver 'automatique'

---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: Curl PHP sous VirtualHost SSL renvoi une erreur
Envoyé par: Fred24 (---.w86-234.abo.wanadoo.fr)
Date: 09 October 2024 à 14:53

Bonjour,
Merci beaucoup pour votre aide, tout fonctionne parfaitement à présent.

Je récapitule donc :
1. Générer un certificat contenant tous les domaines et alias de domaine. (Voir Aide Wamp)
2. Modifier éventuellement le VirtualHost dans "httpd-ssl.conf". (Ajouter un ServerAlias par ex.)
3. Télécharger le fichier "cacert.pem" (via [curl.se]) contenant les autorités officielles.
4. Coller le fichier "cacert.pem" dans l'endroit de son choix. (Pour moi : "c:/wamp/bin/certificats/cacert.pem"winking smiley
5. Copier la clé de notre certificat "mon-site-local.home-certonly.pem" dans le fichier "cacert.pem".
6. Décommenter et modifier la directive "curl.cainfo" dans les fichier "php.ini" et "phpForApache.ini".
(Dans mon cas : curl.cainfo="c:/wamp/bin/certificats/cacert.pem"winking smiley
7. Redémarrer les services.

J'aurais peut-être juste une dernière question pour un éventuel cas futur.
Quel serait l'intérêt ou l'utilité de mettre notre certificat dans le magasin de certificat windows?

En tout cas, encore merci Otomatic, d'avoir pris le temps de m'aider.

Reposez vous bien.

Cordialement,
Fred

Ma config : Windows 10 (x64) | Wamp 3.3.6 (x64) | Apache 2.4.54.2 | Php 8.1.13 | Mysql 8.0.31 | PhpMyAdmin 5.2.0 | Netbeans IDE 18

Options: Répondre•Citer ce Message
Re: Curl PHP sous VirtualHost SSL renvoi une erreur
Envoyé par: Otomatic (Modérateur)
Date: 09 October 2024 à 15:41

Bonjour,

> Quel serait l'intérêt ou l'utilité de mettre notre certificat dans le magasin de certificat windows?
Franchement, je n'en sais rien.

Vieil adage : Quand ça marche, on ne touche pas.

---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: Curl PHP sous VirtualHost SSL renvoi une erreur
Envoyé par: Fred24 (---.w86-234.abo.wanadoo.fr)
Date: 09 October 2024 à 17:36

Ha ha ha... Tout à fait d'accord avec le vieil adage.

C'est dommage, je n'ai plus le temps de tester, mais j'aurais pensé que cela éviterais d'avoir une alerte de sécurité dans nos navigateur web.

Merci encore et bonne fin de journée.

Ma config : Windows 10 (x64) | Wamp 3.3.6 (x64) | Apache 2.4.54.2 | Php 8.1.13 | Mysql 8.0.31 | PhpMyAdmin 5.2.0 | Netbeans IDE 18

Options: Répondre•Citer ce Message


Aller à : Liste des Forums•Liste des messages•Recherche•Connexion
Désolé, seuls les utilisateurs connectés peuvent envoyer des messages dans ce forum.
Cliquer ici pour se connecter

design by jidePowered by Alter Way get firefoxget PHP