curl:(1)协议https在libcurl中不支持或禁用

时间:2021-01-15 21:12:04

I'm driving crazy on installing the Rails environments on Ubuntu 11.04. I launch the command rvm install 1.9.2 --with-openssl-dir=/usr/local and I always getting the following error:

在Ubuntu 11.04上安装Rails环境让我抓狂。我启动命令rvm install 1.9.2—with-openssl-dir=/usr/local,我总是得到以下错误:

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

I googled all day without getting anything. Does anyone meet the same problem?

我在谷歌上搜索了一整天,什么也没找到。有人遇到同样的问题吗?

11 个解决方案

#1


170  

Got the answer HERE for windows, it says there that:

得到windows的答案,这里写着:

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

Woops, first try and already an error:

哦,先试试,已经有个错误了:

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

The reason for this error is kind of stupid, Windows doesn’t like it when you are using single quotes for commands. So the correct command is:

这个错误的原因有点愚蠢,Windows不喜欢在命令中使用单引号。所以正确的命令是:

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

#2


48  

I ran into this problem and turned out that there was a space before the https which was causing the problem. " https://" vs "https://"

我遇到了这个问题,发现在https出现之前有一个空格导致了这个问题。“https://”和“https://”

#3


10  

I encountered the same problem while trying to install rvm for ruby. found the solution: after extracting curl (tar) in downloads folder of root.

我在为ruby安装rvm时遇到了同样的问题。找到解决方案:在root的下载文件夹中提取curl (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)

source

#4


8  

This is specifically mentioned in the libcurl FAQ entry "Protocol xxx not supported or disabled in libcurl".

libcurl FAQ条目“在libcurl中不支持或禁用的协议xxx”中特别提到了这一点。

For your pleasure I'm embedding the explanation here too:

为了让你们高兴,我也在这里解释一下

When passing on a URL to curl to use, it may respond that the particular protocol is not supported or disabled. The particular way this error message is phrased is because curl doesn't make a distinction internally of whether a particular protocol is not supported (ie never got any code added that knows how to speak that protocol) or if it was explicitly disabled. curl can be built to only support a given set of protocols, and the rest would then be disabled or not supported.

当将URL传递给curl以使用时,它可能会响应不支持或禁用特定的协议。这个错误消息的特定表达方式是由于curl在内部并不区分某个特定的协议是否不受支持(即从未添加任何知道如何使用该协议的代码),或者它是否被显式禁用。curl可以只支持给定的一组协议,其余的将被禁用或不支持。

Note that this error will also occur if you pass a wrongly spelled protocol part as in "htpt://example.com" or as in the less evident case if you prefix the protocol part with a space as in " http://example.com/".

注意,如果您传递了一个拼写错误的协议部分(如“htpt:/ example.com”),或者在不太明显的情况下(如在“http://example.com/”中为协议部分加上空格),那么也会出现此错误。

#5


6  

Solve this problem with flag --with-darwinssl

用flag -darwinssl解决这个问题

Go to folder with curl source code

使用curl源代码进入文件夹

Download it here https://curl.haxx.se/download.html

在这里下载https://curl.haxx.se/download.html

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

restart your console and it is done!

重新启动控制台,它就完成了!

#6


5  

In my case, HTTPS protocol was not supported by libcurl at the first place. To find out which protocols are supported and which are not, I checked the curl version using command:

在我的案例中,libcurl一开始并不支持HTTPS协议。为了找出支持哪些协议和不支持哪些协议,我使用命令检查了curl版本:

curl --version

curl——版本

It provided information as follows: curl 7.50.3 (x86_64-apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5 Protocols: dict file ftp ftps gopher http imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets

它提供的信息如下:curl 7.50.3 (x86_64-苹果-达尔文15.6.0)libcurl/7.50.3 SecureTransport zlib/1.2.5协议:dict文件ftp ftps gopher http imap imap

where https protocol happens to be not supported.

https协议不受支持。

Then I re-installed curl and installed it using the following commands(after unpacked):

然后,我重新安装curl,并使用以下命令(在打开之后)安装它:

./configure --with-darwinssl (enable ssl communication in mac)

./configure——使用达尔文ssl(在mac中启用ssl通信)

make

使

make test

做测试

sudo make install

sudo make install

And after several minutes of work, Problems resolved!

工作几分钟后,问题就解决了!

Then I re-run the curl version command, it showed:

然后我重新运行curl版本命令,它显示:

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

libcurl (x86_64-apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5协议:dict file ftps她的http imap赋予ldap ldaps pop3 pop3 pop3s rtsp smb smtp smtps telnet tftp tftp特性:IPv6 Largefile NTLM NTLM NTLM_WB SSL libunixsocket

HTTPS protocol showed up!

HTTPS协议出现!

Finally, a useful site to refer when you run into curl problems. https://curl.haxx.se/docs/install.html

最后,当您遇到旋度问题时,可以参考一个有用的站点。https://curl.haxx.se/docs/install.html

#7


4  

I solve it just by changing 'http://webname...' to "http://webname..."

我只需更改“http://webname.…””“http://webname..”。

Notice the quote. It should be double (") instead of single (').

请注意报价。它应该是double(")而不是single(')。

#8


1  

Got the same error when using curl on https site like

在https站点上使用curl时也有相同的错误

curl https://api.dis...

as pointed out by ganesh, it was because my version of curl wasn't ssl enabled. went back and downloaded the version with ssl and it worked fine.

正如ganesh所指出的,这是因为我的curl版本没有启用ssl。返回并下载了带有ssl的版本,运行良好。

#9


0  

I just recompiled curl with configure options pointing to the openssl 1.0.2g library folder and include folder, and I still get this message. When I do ldd on curl, it does not show that it uses either libcrypt.so or libssl.so, so I assume this must mean that even though the make and make install succeeded without errors, nevertheless curl does not have HTTPS support? Configure and make was as follows:

我刚刚重新编译了curl,配置选项指向openssl 1.0.2g库文件夹和include文件夹,我仍然得到这条消息。当我在curl上执行ldd时,它并没有显示它使用了libcrypt。所以还是libssl。所以,我认为这一定意味着即使make和make安装成功没有错误,但是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

I should mention that libssl.so.1 is in /local/scratch/PACKAGES/local/lib. It is unclear whether the --with-ssl option should point there or to the directory where the openssl install placed the openssl.cnf file. I chose the latter. But if it were supposed to be the former, the make should have failed with an error that it couldn't find the library.

我应该提一下libsslso。1 /地方/划痕/包/地方/ lib。不清楚——with-ssl选项应该指向那里,还是指向openssl安装放置openssl.cnf文件的目录。我选择了后者。但是如果是前者,make应该会失败,因为它找不到库。

#10


0  

Specifying the protocol within the url might solve your problem.

在url中指定协议可能会解决您的问题。

I had a similar problem (while using curl php client) :

我有一个类似的问题(在使用curl php客户端时):

I was passing domain.com instead of sftp://domain.com which lead to this confusing error:

我是通过domain.com而不是sftp://domain.com导致这个令人困惑的错误:

Protocol "http" not supported or disabled in libcurl, took 0 seconds.

协议“http”在libcurl中不受支持或禁用,花费了0秒。

#11


0  

My problem was coused by not displayed UTF symbol. I copy link from nginx track and got the next in clipboard:

我的问题是通过没有显示UTF符号来解决的。我从nginx轨道上复制链接,得到下一个剪贴板:

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            

Problem symbol is 0xe2 0x80 0x8b ZERO WIDTH JOINER, which is precedes https.

问题符号是0xe2 0x80 0x8b零宽度连接器,它在https之前。

#1


170  

Got the answer HERE for windows, it says there that:

得到windows的答案,这里写着:

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

Woops, first try and already an error:

哦,先试试,已经有个错误了:

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

The reason for this error is kind of stupid, Windows doesn’t like it when you are using single quotes for commands. So the correct command is:

这个错误的原因有点愚蠢,Windows不喜欢在命令中使用单引号。所以正确的命令是:

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

#2


48  

I ran into this problem and turned out that there was a space before the https which was causing the problem. " https://" vs "https://"

我遇到了这个问题,发现在https出现之前有一个空格导致了这个问题。“https://”和“https://”

#3


10  

I encountered the same problem while trying to install rvm for ruby. found the solution: after extracting curl (tar) in downloads folder of root.

我在为ruby安装rvm时遇到了同样的问题。找到解决方案:在root的下载文件夹中提取curl (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)

source

#4


8  

This is specifically mentioned in the libcurl FAQ entry "Protocol xxx not supported or disabled in libcurl".

libcurl FAQ条目“在libcurl中不支持或禁用的协议xxx”中特别提到了这一点。

For your pleasure I'm embedding the explanation here too:

为了让你们高兴,我也在这里解释一下

When passing on a URL to curl to use, it may respond that the particular protocol is not supported or disabled. The particular way this error message is phrased is because curl doesn't make a distinction internally of whether a particular protocol is not supported (ie never got any code added that knows how to speak that protocol) or if it was explicitly disabled. curl can be built to only support a given set of protocols, and the rest would then be disabled or not supported.

当将URL传递给curl以使用时,它可能会响应不支持或禁用特定的协议。这个错误消息的特定表达方式是由于curl在内部并不区分某个特定的协议是否不受支持(即从未添加任何知道如何使用该协议的代码),或者它是否被显式禁用。curl可以只支持给定的一组协议,其余的将被禁用或不支持。

Note that this error will also occur if you pass a wrongly spelled protocol part as in "htpt://example.com" or as in the less evident case if you prefix the protocol part with a space as in " http://example.com/".

注意,如果您传递了一个拼写错误的协议部分(如“htpt:/ example.com”),或者在不太明显的情况下(如在“http://example.com/”中为协议部分加上空格),那么也会出现此错误。

#5


6  

Solve this problem with flag --with-darwinssl

用flag -darwinssl解决这个问题

Go to folder with curl source code

使用curl源代码进入文件夹

Download it here https://curl.haxx.se/download.html

在这里下载https://curl.haxx.se/download.html

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

restart your console and it is done!

重新启动控制台,它就完成了!

#6


5  

In my case, HTTPS protocol was not supported by libcurl at the first place. To find out which protocols are supported and which are not, I checked the curl version using command:

在我的案例中,libcurl一开始并不支持HTTPS协议。为了找出支持哪些协议和不支持哪些协议,我使用命令检查了curl版本:

curl --version

curl——版本

It provided information as follows: curl 7.50.3 (x86_64-apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5 Protocols: dict file ftp ftps gopher http imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets

它提供的信息如下:curl 7.50.3 (x86_64-苹果-达尔文15.6.0)libcurl/7.50.3 SecureTransport zlib/1.2.5协议:dict文件ftp ftps gopher http imap imap

where https protocol happens to be not supported.

https协议不受支持。

Then I re-installed curl and installed it using the following commands(after unpacked):

然后,我重新安装curl,并使用以下命令(在打开之后)安装它:

./configure --with-darwinssl (enable ssl communication in mac)

./configure——使用达尔文ssl(在mac中启用ssl通信)

make

使

make test

做测试

sudo make install

sudo make install

And after several minutes of work, Problems resolved!

工作几分钟后,问题就解决了!

Then I re-run the curl version command, it showed:

然后我重新运行curl版本命令,它显示:

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

libcurl (x86_64-apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5协议:dict file ftps她的http imap赋予ldap ldaps pop3 pop3 pop3s rtsp smb smtp smtps telnet tftp tftp特性:IPv6 Largefile NTLM NTLM NTLM_WB SSL libunixsocket

HTTPS protocol showed up!

HTTPS协议出现!

Finally, a useful site to refer when you run into curl problems. https://curl.haxx.se/docs/install.html

最后,当您遇到旋度问题时,可以参考一个有用的站点。https://curl.haxx.se/docs/install.html

#7


4  

I solve it just by changing 'http://webname...' to "http://webname..."

我只需更改“http://webname.…””“http://webname..”。

Notice the quote. It should be double (") instead of single (').

请注意报价。它应该是double(")而不是single(')。

#8


1  

Got the same error when using curl on https site like

在https站点上使用curl时也有相同的错误

curl https://api.dis...

as pointed out by ganesh, it was because my version of curl wasn't ssl enabled. went back and downloaded the version with ssl and it worked fine.

正如ganesh所指出的,这是因为我的curl版本没有启用ssl。返回并下载了带有ssl的版本,运行良好。

#9


0  

I just recompiled curl with configure options pointing to the openssl 1.0.2g library folder and include folder, and I still get this message. When I do ldd on curl, it does not show that it uses either libcrypt.so or libssl.so, so I assume this must mean that even though the make and make install succeeded without errors, nevertheless curl does not have HTTPS support? Configure and make was as follows:

我刚刚重新编译了curl,配置选项指向openssl 1.0.2g库文件夹和include文件夹,我仍然得到这条消息。当我在curl上执行ldd时,它并没有显示它使用了libcrypt。所以还是libssl。所以,我认为这一定意味着即使make和make安装成功没有错误,但是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

I should mention that libssl.so.1 is in /local/scratch/PACKAGES/local/lib. It is unclear whether the --with-ssl option should point there or to the directory where the openssl install placed the openssl.cnf file. I chose the latter. But if it were supposed to be the former, the make should have failed with an error that it couldn't find the library.

我应该提一下libsslso。1 /地方/划痕/包/地方/ lib。不清楚——with-ssl选项应该指向那里,还是指向openssl安装放置openssl.cnf文件的目录。我选择了后者。但是如果是前者,make应该会失败,因为它找不到库。

#10


0  

Specifying the protocol within the url might solve your problem.

在url中指定协议可能会解决您的问题。

I had a similar problem (while using curl php client) :

我有一个类似的问题(在使用curl php客户端时):

I was passing domain.com instead of sftp://domain.com which lead to this confusing error:

我是通过domain.com而不是sftp://domain.com导致这个令人困惑的错误:

Protocol "http" not supported or disabled in libcurl, took 0 seconds.

协议“http”在libcurl中不受支持或禁用,花费了0秒。

#11


0  

My problem was coused by not displayed UTF symbol. I copy link from nginx track and got the next in clipboard:

我的问题是通过没有显示UTF符号来解决的。我从nginx轨道上复制链接,得到下一个剪贴板:

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            

Problem symbol is 0xe2 0x80 0x8b ZERO WIDTH JOINER, which is precedes https.

问题符号是0xe2 0x80 0x8b零宽度连接器,它在https之前。