J'ai un paquet API sur CRAN qui fournit une interface avec un DB de l'ONU (link au site UN), il est construit en utilisant httr, qui utilise le paquet curl. J'ai découvert hier que les fonctions essentielles de mon colis n'effectuaient plus correctement sur les machines Windows, tous échouent avec le message d'erreur:En utilisant ssl_verifypeer = FALSE dans un paquet de CRAN?
Error in curl::curl_fetch_memory(url, handle = handle) : Peer certificate cannot be authenticated with given CA certificates
Ce qui signifie que, fondamentalement, il y a un problème de certificat CA empêchant boucle de terminer la connexion . Après avoir examiné cela un peu, je crois que le site de l'ONU hébergeant la DB est le problème, son certificat SSL est invalide par ssldecoder (voir ce link).
Une solution facile pour contourner ce problème consiste à ajouter le paramètre ssl_verifypeer = FALSE
à tous les appels au httr::GET()
. Cependant, ce n'est pas une solution idéale pour des raisons de sécurité, car il dit basiquement à curl de faire la connexion indépendamment de la validité du certificat du site.
Ma question est, quel est le consensus sur l'utilisation de ce paramètre dans un paquet CRAN? En gardant à l'esprit que le site Web de l'ONU est (sans doute) sûr?
Merci pour les commentaires @hrbrmstr. J'ai envoyé un courriel à CRAN pour leur dire ce qui se passe et je leur ai suggéré de prendre le paquet jusqu'à ce que les problèmes puissent être réglés. J'ai également déposé un rapport de bogue sur le site Web de l'ONU Comtrade, en leur donnant une idée de ce que j'ai trouvé et en leur demandant s'ils ont récemment changé leurs certificats SSL. Une dernière question, je suis toujours capable de tirer des données CSV du site avec read.csv, et des données json avec le rjson pkg ... cela signifie-t-il simplement que ces options sont intrinsèquement moins sécurisées que httr/curl (et donc je ne devrait pas compter sur eux)? –