web-dev-qa-db-ja.com

curl:(1)プロトコルhttpsはlibcurlではサポートされていないか無効になっています

Ubuntu 11.04にRails環境をインストールしようとしています。コマンドrvm install 1.9.2 --with-openssl-dir=/usr/localを起動すると、次のエラーが表示されます。

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

これはどのように解決できますか?

113

答えが得られました HERE Windowsの場合、次のように書かれています:

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

おっと、最初に試してみて、すでにエラーが発生しています:

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

このエラーの原因は一種の愚かさです。コマンドに一重引用符を使用しているとき、Windowsはそれを気にしません。したがって、正しいコマンドは次のとおりです。

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

私はこの問題にぶつかり、問題を引き起こしていたhttpsの前にスペースがあることがわかりました。 " https://" vs "https://"

66
jbrahy

Ruby用のrvmをインストールしようとしたときに同じ問題が発生しました。解決策を見つけた:ルートのダウンロードフォルダにカール(tar)を抽出した後。

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)

ソース

10
R T

すでに非常に多くの回答があるように見えますが、私が直面した問題は二重引用符でした。次の間に違いがあります。

そして

"

1番目の二重引用符を2番目の二重引用符に変更すると、次のサンプルカールになります。

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

これは、libcurl FAQエントリ「 libcurl でサポートされていないか無効にされているプロトコルxxx」で具体的に説明されています。

あなたの喜びのために、私もここに説明を埋め込みます:

使用するcurlにURLを渡すと、特定のプロトコルがサポートされていないか無効になっていると応答する場合があります。このエラーメッセージの特定の言い方は、curlは特定のプロトコルがサポートされていない(つまり、そのプロトコルの読み方を知っているコードを追加したことがない)か、明示的に無効にされたかを内部で区別しないためです。 curlは、特定のプロトコルセットのみをサポートするように構築でき、残りは無効になるか、サポートされません。

このエラーは、「htpt://example.com」のように間違った綴りのプロトコルパーツを渡す場合、またはプロトコルパーツの前に「 http://example.com/ 」。

8
Daniel Stenberg

フラグ--with-darwinsslでこの問題を解決しました

Curlソースコードがあるフォルダーに移動する

ここからダウンロード https://curl.haxx.se/download.html

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

コンソールを再起動すると完了です!

私の場合、最初はHTTPSプロトコルはlibcurlでサポートされていませんでした。サポートされているプロトコルとサポートされていないプロトコルを確認するには、次のコマンドを使用してcurlバージョンを確認しました。

curl --version

curl 7.50.3 (x86_64-Apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5プロトコル:dictファイルftp ftps Gopher http imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp機能:IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets

httpsプロトコルはたまたまサポートされていません。

次に、curlを再インストールし、次のコマンドを使用してインストールしました(解凍後)。

./configure --with-darwinssl(MacでSSL通信を有効にする)make make test Sudo make install

そして、数分の作業の後、問題は解決しました!

次に、curl versionコマンドを再実行すると、次のように表示されました。

curl 7.50.3 (x86_64-Apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5プロトコル:dictファイルftp ftps Gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp機能:IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets

HTTPSプロトコルが登場しました!

最後に、カールの問題が発生したときに参照する便利なサイト。 https://curl.haxx.se/docs/install.html

6
someone

'http://webname...'"http://webname..."に変更するだけで解決します

引用に注意してください。シングル(")ではなく、ダブル(')である必要があります。

5
Aminah Nuraini

次のようなhttpsサイトでcurlを使用すると同じエラーが発生しました

curl https://api.dis...

ganesh で指摘されているように、それは私のバージョンのcurlがSSLに対応していなかったためです。戻って、sslを使用してバージョンをダウンロードし、正常に機能しました。

1
Deepak Rao

私の問題は、表示されていないUTFシンボルによって引き起こされました。 nginx track からリンクをコピーして、クリップボードに次のものを取得しました。

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            

問題のシンボルは0xe2 0x80 0x8bZERO WIDTH JOINER で、httpsの前にあります。

1
SergA

Openssl 1.0.2gライブラリフォルダーとインクルードフォルダーを指す設定オプションでcurlを再コンパイルしただけで、このメッセージが表示されます。 curlでlddを実行すると、libcrypt.soまたはlibssl.soのいずれかを使用することは示されないため、makeおよびmake installはエラー、それにもかかわらずcurlはHTTPSをサポートしていませんか?設定と作成は次のとおりです。

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

libssl.so.1/local/scratch/PACKAGES/local/libにあることに言及する必要があります。 --with-sslオプションがそこを指しているのか、opensslインストールがopenssl.cnfファイルを置いたディレクトリを指しているのかは不明です。私は後者を選びました。しかし、前者であると想定されていた場合、makeはライブラリを見つけることができないというエラーで失敗するはずでした。

0
tedtoal

URL内でプロトコルを指定すると、問題が解決する場合があります。

私は同様の問題を抱えていました(curl phpクライアントを使用している間):

sftp://domain.comの代わりにdomain.comを渡していたため、この混乱するエラーが発生しました。

プロトコル「http」はlibcurlでサポートまたは無効になっていないため、0秒かかりました。

0
ntt