243 votes

Curl : (1) Le protocole https n'est pas pris en charge ou est désactivé dans libcurl

Je suis en train d'essayer d'installer les environnements Rails sur Ubuntu 11.04. Lorsque je lance la commande rvm install 1.9.2 --with-openssl-dir=/usr/local, j'obtiens l'erreur suivante :

curl : (1) Protocol https not supported or disabled in libcurl

Comment cela peut-il être résolu ?

0 votes

Que se passe-t-il si vous n'utilisez pas --with-openssl-dir=/usr/local (c'est-à-dire simplement rvm install 1.9.2) ?

0 votes

Le même problème, je pensais que --avec... était une solution de contournement

1 votes

Je trouve difficile de croire que votre curl ne prend pas en charge HTTPS. Il est possible que rvm vienne avec son propre curl, ou que vous n'ayez pas installé curl (sudo apt-get install curl). Essayez curl -o "google.html" https://google.com pour vérifier si HTTPS est pris en charge.

497voto

cnlevy Points 8042

Obtenez la réponse ICI pour Windows, il est dit là-bas que :

curl -XPUT 'http://localhost:9200/api/twittervnext/tweet'

Oups, première tentative et déjà une erreur :

curl: (1) Protocole 'http non pris en charge ou désactivé dans libcurl

La raison de cette erreur est un peu stupide, Windows n'aime pas quand vous utilisez des guillemets simples pour les commandes. Donc la commande correcte est :

curl –XPUT "http://localhost:9200/api/twittervnext/tweet"

2 votes

Utilisez Windows SSL-enabled cURL curl.haxx.se/latest.cgi?curl=win64-ssl-sspi à la place si aucune des autres réponses fournies ne fonctionne pour Windows.

12 votes

C'est correct, et pour ajouter un peu de sel, si vous souhaitez réellement utiliser les guillemets doubles dans la chaîne que vous citez, alors vous devez les échapper par exemple : curl "http://localhost:3030/messages/" -H "Content-Type: application/json" --data-binary "{ \"name\":\"Curler\", \"text\": \"Hello from the command line\" }" au lieu de curl "http://localhost:3030/messages/" -H "Content-Type: application/json" --data-binary '{ "name":"Curler", "text": "Hello from the command line" }'... notez les guillemets simples et non échappés à la mauvaise partie.

1 votes

@EmmanuelMahuni Merci pour l'indice. Je rencontrais le même problème en essayant de CURL à partir du pipeline bitbucket, ma valeur comprend des guillemets doubles (") (car je lis une réponse json de aws cli en utilisant jq), une fois que j'ai supprimé les guillemets du début et de la fin, ça a fonctionné pour moi. Voici comment je l'ai fait.new_url=$( echo $url | tr -d \" )

104voto

jbrahy Points 591

Je suis tombé sur ce problème et il s'est avéré qu'il y avait un espace avant le https qui causait le problème. " https://" vs "https://"

6 votes

Et j'ai eu la même chose. J'étais surpris pourquoi diable sur terre je reçois cette erreur. :) +1 pour partager ceci.

3 votes

De même pour moi, c'était une seule citation car nous avions enveloppé une valeur bash par défaut avec une seule citation bien que ce n'était pas nécessaire...

1 votes

Il est incroyable que cela ait apparemment été un problème pour tant de gens - moi y compris. Cette chose arrive de temps en temps, mais cela semble un peu obscur. Ah bien. Merci

50voto

Pavan_Obj Points 147

Il semble qu'il y ait déjà tellement de réponses, mais le problème que j'ai rencontré était avec les guillemets doubles. Il y a une différence entre:

et

"

Changer le 1er guillemet double par le second a fonctionné pour moi, voici un exemple de curl:

curl -X PUT -u xxx:xxx -T test.txt "https://test.com/test/test.txt"

0 votes

Bien sûr, mon pote.

0 votes

Celle-ci a résolu mon problème.

0 votes

Content has been provided without HTML tags. Can you please provide the content with HTML tags included so that it can be translated accurately?

15voto

MadMax Points 499

J'ai rencontré le même problème en essayant d'installer rvm pour Ruby. J'ai trouvé la solution : après avoir extrait curl (tar) dans le dossier de téléchargements de root.

cd /root/Downloads/curl # étape-1
./configure --with-ssl # étape-2
make # étape-3
make install # étape-4 (si ce n'est pas root, utilisez sudo avant la commande)

source

1 votes

Cela devrait être la réponse acceptée

13voto

someone Points 359

Dans mon cas, le protocole HTTPS n'était pas pris en charge par libcurl au départ. Pour savoir quels protocoles sont pris en charge et lesquels ne le sont pas, j'ai vérifié la version de curl en utilisant la commande:

curl --version

Cela a fourni les informations suivantes: curl 7.50.3 (x86_64-apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5 Protocoles: dict file ftp ftps gopher http imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Fonctionnalités: IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets

où le protocole https s'avère ne pas être pris en charge.

Ensuite, j'ai réinstallé curl et l'ai installé en utilisant les commandes suivantes (après le déballage):

./configure --with-darwinssl (activer la communication ssl sur mac) make make test sudo make install

Et après quelques minutes de travail, les problèmes ont été résolus!

Ensuite, j'ai de nouveau exécuté la commande de vérification de la version de curl, cela a montré:

curl 7.50.3 (x86_64-apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5 Protocoles: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Fonctionnalités: IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets

Le protocole HTTPS est apparu!

Enfin, un site utile à consulter lorsque vous rencontrez des problèmes avec curl. https://curl.haxx.se/docs/install.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X