Module SIRENE : Problème SSL lors d'une recherche

Bonjour,

Je me permets de vous solliciter car je viens d’installer Dolibarr (dernière version, v14) et je souhaiterais y faire fonctionner le module SIRENE développé par OPEN-DSI, qui a l’air vraiment parfait (merci et bravo à ceux qui y ont contribué).

J’ai donc acheté le module sur le DOLI-STORE et je viens de suivre toutes les instructions. Tout étant très bien expliqué, je n’ai rencontré aucun problème. Cependant, lorsque j’en arrive à faire ma première « recherche » (en tapant un SIREN par exemple), je suis confronté à cette erreur (qui apparaît en rouge en haut à droite de l’écran) :

GuzzleHttp\Exception\RequestException: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) in D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php:186 Stack trace: #0 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(149): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array) #1 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(102): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory)) #2 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\Handler\CurlHandler.php(43): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory)) #3 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\Handler\Proxy.php(28): GuzzleHttp\Handler\CurlHandler->__invoke(Object(GuzzleHttp\Psr7\Request), Array) #4 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\Handler\Proxy.php(51): GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}(Object(GuzzleHttp\Psr7\Request), Array) #5 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\PrepareBodyMiddleware.php(66): GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}(Object(GuzzleHttp\Psr7\Request), Array) #6 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\Middleware.php(30): GuzzleHttp\PrepareBodyMiddleware->__invoke(Object(GuzzleHttp\Psr7\Request), Array) #7 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\RedirectMiddleware.php(70): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Request), Array) #8 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\Middleware.php(60): GuzzleHttp\RedirectMiddleware->__invoke(Object(GuzzleHttp\Psr7\Request), Array) #9 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\HandlerStack.php(67): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Request), Array) #10 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\Client.php(277): GuzzleHttp\HandlerStack->__invoke(Object(GuzzleHttp\Psr7\Request), Array) #11 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\Client.php(125): GuzzleHttp\Client->transfer(Object(GuzzleHttp\Psr7\Request), Array) #12 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\Client.php(131): GuzzleHttp\Client->requestAsync('post', Object(GuzzleHttp\Psr7\Uri), Array) #13 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\vendor\guzzlehttp\guzzle\src\Client.php(89): GuzzleHttp\Client->request('post', 'siret', Array) #14 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\class\sirene.class.php(418): GuzzleHttp\Client->__call('post', Array) #15 D:\dolibarr\www\dolibarr\htdocs\custom\sirene\class\actions_sirene.class.php(112): Sirene->getCompanies('nosal', '', Array, '', '', 20, '1') #16 D:\dolibarr\www\dolibarr\htdocs\core\class\hookmanager.class.php(275): ActionsSirene->doActions(Array, Object(Societe), 'add', Object(HookManager)) #17 D:\dolibarr\www\dolibarr\htdocs\societe\card.php(151): HookManager->executeHooks('doActions', Array, Object(Societe), 'add') #18 {main}

Je vous avoue que je ne comprends pas comment régler ce problème, malgré mes recherches avant de vous solliciter. Quelqu’un aurait-il des pistes de solution à partager ?

Merci par avance,
Antoine.

Après d’autres recherches j’ai finalement réussi à faire fonctionner le module.

Je n’ai pas trouver de référence à mon erreur dans le même contexte mais je me suis référé à la solution proposé par @frederic34 (https://www.dolibarr.fr/forum/u/frederic34) sur ce sujet : https://www.dolibarr.org/forum/t/dolibarr-3-9-0-beta-printing-error/12882/26.

J’ai ainsi suivi les instructions suivantes :

  • Shutdown server
  • Download the file cacert.pem here: http://curl.haxx.se/ca/cacert.pem (file is often updated)
  • Put it in the directory where php is installed
  • Modify le php.ini and add (or update): curl.cainfo=c:\php\cacert.pem (take care of the directory name)
  • Restart server

J’ai effectué cette opération sur les deux fichiers ‹ php.ini › que j’ai trouvé dans mon installation locale Doliwamp.

Je pense qu’il serait utile d’ajouter cela dans le guide utilisateur du module SIRENE (à supposer que ce soit la bonne solution…), qu’en pensez-vous ? Quel serait le meilleur moyen de leur suggérer ?

Merci,
Antoine.

En fait, ce problème n’est pas spécifiquement lié au module Sirene, mais aux dépendances du module installées sur le serveur si j’ai bien compris.

Je pense que des développeurs d’OpenDSI (notamment @aspangaro-OpenDSI) parcourent régulièrement le forum, donc ils liront très certainement cette discussion :-).

Cela dit, cette solution peut potentiellement intéresser beaucoup de monde dans la communauté Dolibarr, et lui donner de la visibilité ne ferait pas de mal.

Bonjour,

Cette erreur est souvent présente quand vous lancez une recherche sur le module Sirene depuis un wamp sur windows.

C’est un problème avec la librairie CURL.

Bonjour et merci pour votre retour.

Pensez-vous que la « solution » que j’ai mise en place soit viable et est-il envisageable d’en faire profiter les futurs utilisateurs de ce module (peut-être via le guide d’utilisation) ?

Antoine.

Bonjour,

A vérifier à la prochaine mise à jour de Doliwamp.
En cas de réinstallation complète du serveur wamp, il faudra refaire l’opération.

Ce sera dans la prochaine version de la doc, mais on sort du cadre, cela ne concerne pas le module, mais le paramétrage d’un serveur local.

@RomainDeschamps Merci pour votre retour. Je vous tiendrais informé si je mets à jour DoliWamp et/ou si j’effectue une nouvelle installation.