curl: (1) Protokol https tidak didukung atau dinonaktifkan di libcurl

162

Saya mencoba menginstal lingkungan Rails di Ubuntu 11.04. Ketika saya meluncurkan perintah rvm install 1.9.2 --with-openssl-dir=/usr/local, kesalahan berikut diterima:

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

Bagaimana ini bisa diselesaikan?

Giuseppe Di Federico
sumber
Apa yang terjadi jika Anda tidak menggunakan --with-openssl-dir=/usr/local(yaitu hanya rvm install 1.9.2)?
Omri Barel
masalah yang sama, saya kira - dengan ... adalah solusi
Giuseppe Di Federico
1
Saya merasa sulit untuk percaya bahwa ikal Anda tidak mendukung HTTPS. Mungkin saja rvm hadir dengan curl-nya sendiri, atau Anda tidak menginstal curl ( sudo apt-get install curl). Coba curl -o "google.html" https://google.comperiksa apakah HTTPS didukung.
Omri Barel
Saya mengalami pesan kesalahan yang sama dengan RCurl.
isomorfisma
terkejut tidak ada jawaban yang diterima untuk yang satu ini.
jbrahy

Jawaban:

295

Mendapat jawaban DI SINI untuk windows, dikatakan di sana bahwa:

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

Aduh, coba dulu dan sudah ada kesalahan:

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

Alasan untuk kesalahan ini agak bodoh, Windows tidak menyukainya ketika Anda menggunakan tanda kutip tunggal untuk perintah . Jadi perintah yang benar adalah:

curl XPUT "http://localhost:9200/api/twittervnext/tweet"
cnlevy
sumber
2
gunakan cURL curl.haxx.se/latest.cgi?curl=win64-ssl-sspi yang diaktifkan Windows SSL sebagai gantinya jika tidak ada jawaban lain yang disediakan yang berfungsi untuk windows.
ganesh
6
ini benar, dan hanya untuk menambahkan sedikit garam, jika Anda ingin benar-benar menggunakan tanda kutip ganda dalam string yang Anda kutip, maka Anda perlu melarikan diri mereka misalnya: curl "http://localhost:3030/messages/" -H "Content-Type: application/json" --data-binary "{ \"name\":\"Curler\", \"text\": \"Hello from the command line\" }"alih-alih curl "http://localhost:3030/messages/" -H "Content-Type: application/json" --data-binary '{ "name":"Curler", "text": "Hello from the command line" }'... perhatikan ganda tunggal dan tidak terhapus mengutip bagian yang salah.
Emmanuel Mahuni
@EmmanuelMahuni Terima kasih atas petunjuknya. Saya mengalami masalah yang sama ketika mencoba untuk CURL dari pipa bitbucket, nilai saya termasuk tanda kutip ganda (") (seperti yang saya baca dari respons json dari aws cli menggunakan jq), satu kali setelah menghapus ganda dari awal dan akhir. bekerja untuk saya, inilah cara saya melakukannya new_url=$( echo $url | tr -d \" )
Appu Mistri
1
Anda baru saja menyelamatkan saya SANGAT BANYAK waktu! Terima kasih!
Richard Varno
1
Memiliki efek yang sama dengan curl pada macOS.
not2savvy
82

Saya mengalami masalah ini dan ternyata ada ruang sebelum httpsyang menyebabkan masalah. " https://"vs."https://"

jbrahy
sumber
6
Dan saya sama. Saya terkejut mengapa sih di bumi saya mendapatkan kesalahan ini. :) +1 untuk berbagi ini.
Awais Qarni
3
Mirip dengan saya, itu adalah penawaran tunggal karena kami telah menggunakan nilai default bash dengan penawaran tunggal walaupun itu tidak perlu ...
Mathieu Dumoulin
1
Sungguh menakjubkan bahwa ini ternyata masalah bagi banyak orang - termasuk saya sendiri. Hal ini terjadi dari waktu ke waktu, tetapi sepertinya tidak jelas. Baiklah Terima kasih
dgo
1
Itu masalah bagi saya. Terima kasih @jbrahy
colecmc
1
Ya saya mendapat hal yang sama. Dengan menghilangkan ruang, itu bekerja dengan baik untuk saya.
Amandeep kaur
21

Sepertinya sudah ada begitu banyak Jawaban tetapi masalah yang saya hadapi adalah dengan tanda kutip ganda. Ada perbedaan di antara:

dan

"

Mengubah kutipan ganda pertama menjadi yang kedua berhasil bagi saya, di bawah ini adalah ikal sampel:

curl -X PUT -u xxx:xxx -T test.txt "https://test.com/test/test.txt"
Pavan_Obj
sumber
Yakin hal saya laki-laki.
Pavan_Obj
Yang ini memperbaiki masalah saya.
Hari Ennekat
Senang itu diperbaiki :).
Pavan_Obj
11

Saya mengalami masalah yang sama ketika mencoba menginstal rvm untuk ruby. menemukan solusinya: setelah mengekstrak curl (tar) di folder unduhan 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)

sumber

RT
sumber
9

Memecahkan masalah ini dengan flag --with-darwinssl

Buka folder dengan kode sumber ikal

Unduh di sini https://curl.haxx.se/download.html

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

restart konsol Anda dan selesai!

Максим Мартынов
sumber
8

Ini secara khusus disebutkan dalam entri FAQ libcurl " Protokol xxx tidak didukung atau dinonaktifkan di libcurl ".

Untuk kesenangan Anda, saya menanamkan penjelasan di sini juga:

Ketika meneruskan URL yang ingin digunakan, mungkin merespons bahwa protokol tertentu tidak didukung atau dinonaktifkan. Cara khusus pesan kesalahan ini diutarakan adalah karena curl tidak membuat perbedaan internal apakah protokol tertentu tidak didukung (yaitu tidak pernah mendapat kode yang ditambahkan yang tahu bagaimana berbicara protokol itu) atau jika itu secara eksplisit dinonaktifkan. curl dapat dibangun untuk hanya mendukung seperangkat protokol yang diberikan, dan sisanya kemudian akan dinonaktifkan atau tidak didukung.

Perhatikan bahwa kesalahan ini juga akan terjadi jika Anda melewatkan bagian protokol yang dieja salah seperti di "htpt: //example.com" atau seperti dalam kasus yang kurang jelas jika Anda awalan bagian protokol dengan spasi seperti di " http: // contoh .com / ".

Daniel Stenberg
sumber
10
Saya tidak percaya jawaban ini menjelaskan kepada OP apa yang harus dia lakukan untuk memperbaiki masalah.
isomorfisma
3
itu menjelaskan apa arti pesan itu, yang menyiratkan bahwa baris perintahnya tidak cukup untuk membangun libcurl dengan HTTPS diaktifkan
Daniel Stenberg
Punya sedikit oleh awalan ruang. Jika hanya kesalahan membaca 'Protokol "xxx" tidak didukung atau dinonaktifkan di libcurl'
topher
8

Dalam kasus saya, protokol HTTPS tidak didukung oleh libcurl sejak awal. Untuk mengetahui protokol mana yang didukung dan mana yang tidak, saya memeriksa versi curl menggunakan perintah:

curl --version

Ini memberikan informasi sebagai berikut: curl 7.50.3 (x86_64-apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5 Protokol: file dict ftp ftps gopher http imap imaps ldap ldaps pop3 pop3s rtsp smb smtp smtp smtps telnet tftp Fitur: IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets

di mana protokol https kebetulan tidak didukung.

Kemudian saya menginstal ulang curl dan menginstalnya menggunakan perintah berikut (setelah membongkar):

./configure --with-darwinssl (aktifkan komunikasi ssl di mac) lakukan test sudo make install

Dan setelah beberapa menit bekerja, Masalah terselesaikan!

Kemudian saya menjalankan kembali perintah versi ikal, itu menunjukkan:

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

Protokol HTTPS muncul!

Terakhir, situs yang bermanfaat untuk dijadikan referensi ketika Anda mengalami masalah keriting. https://curl.haxx.se/docs/install.html

some one
sumber
7

Saya menyelesaikannya hanya dengan mengubah 'http://webname...'ke"http://webname..."

Perhatikan kutipannya. Itu harus ganda ( ") bukan tunggal ( ').

Aminah Nuraini
sumber
Iya! Ini memecahkan masalah bagi saya, menjalankan ikal di command prompt windows saya. Terima kasih!
Ryano
2

Masalah saya disebabkan oleh tidak ditampilkannya simbol UTF. Saya menyalin tautan dari nginx track dan mendapatkan yang berikutnya di clipboard:

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            

Simbol masalah adalah 0xe2 0x80 0x8b ZERO WIDTH JOINER , yang mendahului https.

SergA
sumber
1

Mendapat kesalahan yang sama saat menggunakan curl di situs https suka

curl https://api.dis...

seperti yang ditunjukkan oleh Ganesh , itu karena versi curl saya tidak diaktifkan ssl. kembali dan mengunduh versi dengan ssl dan itu berfungsi dengan baik.

Deepak Rao
sumber
1
Saya juga tidak melihat opsi SSL pada halaman unduhan.
Patrick Borkowicz
0

Saya baru saja mengkompilasi ulang ikal dengan opsi konfigurasi yang menunjuk ke folder library openssl 1.0.2g dan termasuk folder, dan saya masih mendapatkan pesan ini. Ketika saya melakukan ldd di curl, itu tidak menunjukkan bahwa ia menggunakan salah satu libcrypt.soatau libssl.so, jadi saya menganggap ini harus berarti bahwa meskipun makedan make installberhasil tanpa kesalahan, namun curl tidak memiliki dukungan HTTPS? Konfigurasikan dan buat adalah sebagai berikut:

./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

Saya harus menyebutkan bahwa libssl.so.1ada di /local/scratch/PACKAGES/local/lib. Tidak jelas apakah --with-sslopsi harus mengarah ke sana atau ke direktori di mana install openssl menempatkan file openssl.cnf. Saya memilih yang terakhir. Tetapi jika itu seharusnya yang pertama, merek seharusnya gagal dengan kesalahan bahwa itu tidak dapat menemukan perpustakaan.

tedtoal
sumber
Teks tautannya sendiri sudah benar. ikal tidak dapat mengambil menggunakan https, dan saya tidak tahu mengapa.
tedtoal
0

Menentukan protokol dalam url dapat menyelesaikan masalah Anda.

Saya punya masalah yang sama (saat menggunakan curl php client):

Saya melewati domain.com alih-alih sftp: //domain.com yang menyebabkan kesalahan membingungkan ini:

Protokol "http" tidak didukung atau dinonaktifkan di libcurl, butuh 0 detik.

ntt
sumber