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

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

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

我一整天都没有得到任何东西。 有没有人遇到同样的问题?

在这里得到了关于windows的答案,它在那里说:

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

Woops,首先尝试并且已经有一个错误:

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

这个错误的原因是愚蠢的, 当你使用单引号的命令时Windows不喜欢它 。 所以正确的命令是:

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

我遇到了这个问题,结果是在https导致问题之前有一个空格。 " https://" vs "https://"

我在尝试安装rvm for ruby​​时遇到了同样的问题。 find了解决办法:在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) 

资源

这在libcurl FAQ条目中提到:“ 协议xxx在libcurl中不受支持或禁用 ”。

为了您的乐趣,我也在这里embedded解释:

当传递一个URL来curl使用,它可能会回应,特定的协议不被支持或禁用。 这个错误信息的特定方式是因为curl没有在内部区分是否不支持某个特定的协议(也就是从来没有任何代码可以知道如何说这个协议)或者是否被明确禁用。 curl可以被构build为仅支持一组给定的协议,其余的将被禁用或不被支持。

请注意,如果您在“htpt://example.com”中传递拼写错误的协议部分,或者如果您在协议部分前面加上了“ http://示例中的空格” .com / “。

用flag –with-darwinssl解决这个问题

转到与curl源代码文件夹

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

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

重新启动您的控制台,并完成!

我只是通过将'http://webname...'更改为"http://webname..."

注意报价。 它应该是双( " )而不是单( ' )。

在我的情况下,HTTPS协议首先不被libcurl支持。 为了找出哪些协议被支持,哪些不支持,我使用命令检查了curl版本:

curl – 翻转

它提供的信息如下: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大文件NTLM NTLM_WB SSL libz UnixSockets

https协议碰巧不被支持。

然后我重新安装curl并使用以下命令安装它(解压后):

./configure –with-darwinssl(在mac中启用ssl通信)

使

做testing

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 pop3s pop3s rtsp smb smbs smtp smtps telnet tftp特性:IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets

HTTPS协议显示!

最后,一个有用的网站,当你遇到curl问题时提及。 https://curl.haxx.se/docs/install.html

在https网站上使用curl时出现同样的错误

 curl https://api.dis... 

正如ganesh指出的那样,这是因为我的curl版本不是ssl启用的。 回去并用ssl下载了版本,它工作正常。

我刚刚重新编译curl指向openssl 1.0.2g库文件夹和包含文件夹的configuration选项,我仍然得到这个消息。 当我在curl上执行ldd时,并没有显示它使用libcrypt.solibssl.so ,所以我认为这意味着即使makemake install成功没有错误,但curl没有HTTPS支持? configuration和制作如下:

 ./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文件的目录是不清楚的。 我select了后者。 但是,如果它应该是前者,那么制作应该失败,因为它找不到图书馆的错误。

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

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

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

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

我的问题是没有显示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 

问题符号是0xe2 0x80 0x8b ZERO WIDTH JOINER ,位于https之前。