curl: (1) Libcurl'de protokol https desteklenmiyor veya devre dışı bırakıldı


163

Ubuntu 11.04 üzerinde Rails ortamlarını yüklemeye çalışıyorum. Komutu başlattığımda rvm install 1.9.2 --with-openssl-dir=/usr/localaşağıdaki hata alındı:

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

Bu nasıl çözülebilir?


Kullanmazsanız --with-openssl-dir=/usr/local(yani basitçe rvm install 1.9.2) ne olur ?
Omri Barel

aynı sorun, ben --with ... bir çözüm olduğunu
Giuseppe Di Federico

1
Kıvrımınızın HTTPS'yi desteklemediğine inanmakta zorlanıyorum. Rvm'nin kendi kıvrımı ile birlikte gelmesi veya curl ( sudo apt-get install curl) yüklememiş olmanız mümkündür . curl -o "google.html" https://google.comHTTPS'nin desteklenip desteklenmediğini kontrol etmeye çalışın .
Omri Barel

İle aynı hata mesajını alıyorum RCurl.
isomorphismes

bu konuda kabul edilmiş bir cevap olmadığına şaşırdım.
jbrahy

Yanıtlar:


296

Windows için cevabı BURAYA aldım , orada şöyle diyor:

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

Woops, önce deneyin ve zaten bir hata:

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

Bu hatanın nedeni biraz aptalca, komutlar için tek tırnak kullandığınızda Windows bunu sevmiyor . Yani doğru komut:

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

2
Windows SSL özellikli cURL curl.haxx.se/latest.cgi?curl=win64-ssl-sspi kullanın, sağlanan diğer yanıtların hiçbiri Windows için çalışmazsa .
Ganesh

6
bu doğrudur ve sadece biraz tuz eklemek için, eğer alıntıladığınız dizedeki çift tırnakları kullanmak istiyorsanız, onlardan kaçmanız gerekir, örneğin: curl "http://localhost:3030/messages/" -H "Content-Type: application/json" --data-binary "{ \"name\":\"Curler\", \"text\": \"Hello from the command line\" }"yerine curl "http://localhost:3030/messages/" -H "Content-Type: application/json" --data-binary '{ "name":"Curler", "text": "Hello from the command line" }'... tek ve kaçmamış çiftleri not edin yanlış tarafta tırnak.
Emmanuel Mahuni

@EmmanuelMahuni İpucu için teşekkürler. Ben bitbucket boru hattından CURL denerken aynı sorunu çalışıyordu, benim değer çift tırnak (") içerir (ben jq kullanarak aws cli gelen json yanıt okuyorum gibi), bir kez çift başlangıç ​​ve bitiş kaldırdıktan sonra. Benim için çalıştı İşte böyle yaptım new_url=$( echo $url | tr -d \" )
Appu Mistri

1
Beni çok fazla kurtardın! Teşekkürler!
Richard Varno

1
MacOS'ta kıvrılma ile aynı etkiye sahip.
not2savvy

82

Bu soruna rastladım ve daha önce httpssoruna neden olan bir alan olduğu ortaya çıktı . " https://"vs"https://"


6
Ve ben de aynısını aldım. Dünyadaki cehenneme neden bu hatayı alıyorum şaşırdım. :) Bunu paylaştığınız için +1.
Awais Qarni

3
Benim için benzer şekilde, tek bir teklifti çünkü gerekli olmasa da varsayılan bir bash değerini tek bir alıntı ile sarmıştık ...
Mathieu Dumoulin

1
Görünüşe göre bu pek çok insan için bir sorun oldu - kendim dahil. Bu şey zaman zaman olur, ama biraz belirsiz görünüyor. Ah güzel. Teşekkürler
dgo

1
Benim için sorun buydu. Thanks @jbrahy
colecmc

1
Evet aynısını aldım. Alanı kaldırarak benim için iyi çalıştı.
Amandeep kaur

22

Görünüşe göre çok fazla Yanıt var ama karşılaştığım sorun çift tırnak ile oldu. Arasında bir fark var:

ve

"

1. çift tırnak için benim için çalışılan ikinciyi değiştirmek, aşağıda örnek kıvırmak:

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

Tabii ki Adamım.
Pavan_Obj

Bu benim sorunumu çözdü.
Hari Ennekat

Sevindim düzeltildi :).
Pavan_Obj

benim için de düzelttim. Geçmişte https ile diğer kıvırmak istekleri için bu hatayı görmemişti, bu yüzden merak ediyordu
Anupam

11

Ruby için rvm yüklemeye çalışırken aynı sorunla karşılaştım. çözüm bulundu: kök indirme klasöründe curl (tar) ayıklandıktan sonra.

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)

kaynak



8

Bu, özellikle libcurl SSS girişinde "libcurl protokolü xxx desteklenmez veya devre dışı bırakılır " bölümünde belirtilir .

Memnuniyetiniz için açıklamayı buraya da yerleştiriyorum:

Kullanılacak kıvrılmak üzere bir URL iletilirken, belirli protokolün desteklenmediği veya devre dışı bırakıldığı yanıtlanabilir. Bu hata mesajını ifade etmenin özel yolu, curl'un belirli bir protokolün desteklenmediği (yani, bu protokolün nasıl konuşulacağını bilen hiçbir kod eklenmediği) veya açıkça devre dışı bırakılmış olup olmadığı konusunda bir ayrım yapmamasıdır. curl yalnızca belirli bir protokol kümesini destekleyecek şekilde oluşturulabilir ve geri kalanı devre dışı bırakılır veya desteklenmez.

Bu hatanın, "htpt: //example.com" 'da olduğu gibi yanlış yazılan bir protokol bölümünü iletirseniz veya protokol kısmına " http: // örneğinde olduğu gibi bir boşluk eklediğinizde daha az belirgindir. .com / ".


10
Bu cevabın OP'ye sorunu çözmek için ne yapması gerektiğini açıkladığına inanmıyorum.
isomorphismes

3
mesajın ne anlama geldiğini açıklar, bu da komut satırının HTTPS etkinken libcurl oluşturmak için yeterli olmadığını ima eder
Daniel Stenberg

Alan öneki ile biraz var. Sadece hata 'Protokol "xxx" libcurl'de desteklenmiyor veya devre dışı bırakılıyorsa
topher

8

Benim durumumda, HTTPS protokolü libcurl tarafından ilk etapta desteklenmedi. Hangi protokollerin desteklendiğini ve hangilerinin desteklenmediğini bulmak için, curl sürümünü komut kullanarak kontrol ettim:

curl --version

Aşağıdaki gibi bilgi sağladı: curl 7.50.3 (x86_64-apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5 Protokoller: dict dosyası ftp ftps gopher http imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Özellikler: IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets

burada https protokolü desteklenmez.

Sonra curl'u yeniden kurdum ve aşağıdaki komutları kullanarak yükledim (paketinden çıkarıldıktan sonra):

./configure --with-darwinssl (Mac'te ssl iletişimini etkinleştir)

Birkaç dakika çalıştıktan sonra Sorunlar çözüldü!

Sonra kıvırmak sürüm komutunu yeniden çalıştırın, gösterdi:

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

HTTPS protokolü ortaya çıktı!

Son olarak, kıvrılma problemleriyle karşılaştığınızda başvurmak için yararlı bir site. https://curl.haxx.se/docs/install.html


7

Sadece değiştirerek çözmeye 'http://webname...'için"http://webname..."

Alıntı dikkat edin. "Single ( ') yerine double ( ) olmalıdır .


Evet! Bu benim için sorunu çözdü, benim windows komut isteminde curl çalıştırarak. Teşekkür ederim!
Ryano

2

Sorunum görüntülenmeyen UTF simgesinden kaynaklandı. Bağlantıyı nginx parçasından kopyaladım ve bir sonraki panoya girdim:

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            

Sorun sembolü 0xe2 0x80 0x8b https'den önce gelen ZERO WIDTH JOINER .


1

Gibi https sitesinde curl kullanırken aynı hatayı aldım

curl https://api.dis...

ganesh tarafından işaret edildiği gibi , bunun nedeni kıvırma versiyonumun ssl etkin olmamasıydı. geri döndü ve sürüm ssl ile indirildi ve iyi çalıştı.


1
İndirme sayfasında SSL seçeneğini görmedim.
Patrick Borkowicz

0

Sadece curs'u openssl 1.0.2g kütüphane klasörüne işaret eden yapılandırma klasörüne yeniden derledim ve klasörü dahil ettim ve hala bu mesajı alıyorum. Kıvrımda ldd yaptığımda, ya libcrypt.soda kullandığını göstermez ya da libssl.so, bu yüzden makeve make installhatasız başarılı olsa da , yine de curl HTTPS desteğinin olmadığı anlamına gelmelidir ? Yapılandırma ve oluşturma aşağıdaki gibidir:

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

Ben bahsetmeliyiz libssl.so.1içindedir /local/scratch/PACKAGES/local/lib. --with-sslSeçeneğin orada mı yoksa openssl kurulumunun openssl.cnf dosyasını yerleştirdiği dizine işaret etmesi gerektiği belirsizdir . Ben ikincisini seçtim. Ancak eski olması gerekiyorsa, marka kütüphaneyi bulamadığı bir hatayla başarısız olmalıydı.


Bağlantı metninin kendisi doğrudur. curl https kullanarak alınamıyor ve neden bilmiyorum.
tedtoal

0

URL içindeki protokolü belirtmek sorununuzu çözebilir.

Ben benzer bir sorun vardı (curl php istemcisi kullanırken):

Bu kafa karıştırıcı hataya yol açan sftp: //etkialanı.com yerine domain.com geçiyordum :

"Http" protokolü libcurl'de desteklenmiyor veya devre dışı bırakıldı, 0 saniye sürdü.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.