web-dev-qa-db-fra.com

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

Je suis devenu fou en installant les environnements Rails sur Ubuntu 11.04. Je lance la commande rvm install 1.9.2 --with-openssl-dir=/usr/local et j'obtiens toujours l'erreur suivante:

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

J'ai googlé toute la journée sans rien obtenir. Est-ce que quelqu'un rencontre le même problème?

98

Vous avez la réponse ICI pour Windows, Il est indiqué que:

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

Woops, essayez d'abord et déjà une erreur:

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

La raison de cette erreur est un peu stupide, Windows ne l’aime pas lorsque vous utilisez des guillemets simples pour les commandes. Donc, la commande correcte est:

curl –XPUT "http://localhost:9200/api/twittervnext/Tweet"
190
cnlevy

J'ai rencontré ce problème et il s'est avéré qu'il y avait un espace avant la https qui était à l'origine du problème. " https://" vs "https://" 

57
jbrahy

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

cd /root/Downloads/curl # step-1
./configure --with-ssl # step-2
make # step-3
make install # step-4 (if not root, use Sudo before command)

la source

10
R T

Ceci est spécifiquement mentionné dans l'entrée libcurl FAQ " Le protocole xxx n'est pas pris en charge ou est désactivé dans libcurl ".

Pour votre plus grand plaisir, j'intègre ici l'explication suivante:

Lorsque vous transmettez une URL à utiliser, il peut répondre que le protocole particulier n'est pas pris en charge ou désactivé. La manière particulière Ce message d'erreur est formulé parce que curl ne crée pas de distinction interne du point de savoir si un protocole particulier n'est pas pris en charge (c’est-à-dire qu’il n’a jamais ajouté de code sachant parler ce protocole .__) ou s’il était explicitement désactivé. curl peut être construit pour seulement supporter un ensemble donné de protocoles, et le reste serait alors désactivé ou non pris en charge. 

Notez que cette erreur se produira également si vous transmettez une erreur d’orthographe partie de protocole comme dans "htpt: //example.com" ou comme dans le moins évident case si vous préfixez la partie de protocole avec un espace comme dans " http://example.com/ ".

8
Daniel Stenberg

Résolu ce problème avec flag --with-darwinssl

Aller au dossier avec le code source curl

Téléchargez-le ici https://curl.haxx.se/download.html

Sudo ./configure --with-darwinssl
make
make install

redémarrez votre console et c'est fait!

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

curl --version

Il 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: fichier dict ftp ftps Gopher http imap imaps ldap ldaps pop3 pop3 rtsp smb smbs smtp smtps telnet tftp Caractéristiques: IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets 

où le protocole https n'est pas pris en charge. 

Ensuite, j'ai réinstallé curl et l'ai installé à l'aide des commandes suivantes (après avoir décompressé):

./configure --with-darwinssl (activer la communication SSL dans mac)

make

faire un test

Sudo fait installer

Et après plusieurs minutes de travail, les problèmes résolus!

Ensuite, j'ai relancé la commande curl version, elle a montré:

curl 7.50.3 (x86_64-Apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5 Protocoles: fichier dict ftp ftps Gopher http https imap imaps ldap ldaps pop3 pop3s smb smb smb smb sms smtp telnet tftp Caractéristiques: IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets 

Le protocole HTTPS est arrivé!

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

5
someone

Je résous simplement en remplaçant 'http://webname...' par "http://webname..."

Notez la citation. Il devrait être double (") au lieu de simple (').

4
Aminah Nuraini

Vous avez la même erreur lorsque vous utilisez curl sur un site https comme 

curl https://api.dis...

comme l'a souligné ganesh , c'est parce que ma version de curl n'était pas activée par SSL. est retourné et a téléchargé la version avec ssl et cela a bien fonctionné.

1
Deepak Rao

Mon problème a été signalé par le symbole UTF non affiché. Je copie le lien de nginx track et j'ai le suivant dans le presse papier:

0x00000000: e2 80 8b 68 74 74 70 73 3a 2f 2f 73 6b 2e 65 65 2f 75 70 6c 6f 61 64 2f 66 69 6c 65 73 2f 45 53  ...https://sk.ee/upload/files/ES
0x00000020: 54 45 49 44 2d 53 4b 5f 32 30 31 35 2e 70 65 6d 2e 63 72 74                                      TEID-SK_2015.pem.crt            

Le symbole du problème est 0xe2 0x80 0x8bZERO WIDTH JOINER , qui précède https.

1
SergA

Je viens de recompiler curl avec les options de configuration pointant vers le dossier de bibliothèque openssl 1.0.2g et le dossier d’inclusion, et j’obtiens toujours ce message. Quand je fais ldd sur curl, cela ne montre pas qu’il utilise libcrypt.so ou libssl.so, donc je suppose que cela signifie que même si les make et make install ont réussi sans erreurs, néanmoins curl ne prend pas en charge HTTPS? Configurer et faire était comme suit:

./configure --prefix=/local/scratch/PACKAGES/local --with-ssl=/local/scratch/PACKAGES/local/openssl/openssl-1.0.2g --includedir=/local/scratch/PACKAGES/local/include/openssl/openssl-1.0.2g
make
make test
make install

Je devrais mentionner que libssl.so.1 est dans /local/scratch/PACKAGES/local/lib. Il est difficile de savoir si l'option --with-ssl doit y pointer ou dans le répertoire où l'installation openssl a placé le fichier openssl.cnf. J'ai choisi le dernier. Mais si c'était supposé être l'ancien, la marque aurait dû échouer avec une erreur telle qu'elle n'a pas pu trouver la bibliothèque.

0
tedtoal

Spécifier le protocole dans l'URL pourrait résoudre votre problème.

J'ai eu un problème similaire (lors de l'utilisation de curl php client):

Je passais domain.com au lieu de sftp: //domain.com qui a entraîné cette erreur déroutante

Le protocole "http" non pris en charge ou désactivé dans libcurl, a pris 0 secondes.

0
ntt

On dirait qu'il y a déjà tellement de réponses, mais le problème que j'ai rencontré était celui des guillemets .. .. Il y a une différence entre:

et 

"

En remplaçant la première citation double par la deuxième qui a fonctionné pour moi, voici l'exemple de boucle:

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