linux - libcurl 不支持 HTTPS

标签 linux ubuntu ssl curl libcurl

我在 Ubuntu 14.04 上运行并且我已经手动安装了 curl 7.48(参见问题 Libcurl not updated)。

我尝试执行命令:

carlo@carlo-ThinkPad-W541:/usr/bin$ curl -sS https://storage.googleapis.com/kubernetes-release/release/stable.txt
curl: (1) Protocol "https" not supported or disabled in libcurl
carlo@carlo-ThinkPad-W541:/usr/bin$

所以我快速检查了配置输出,它明确表示不支持 SSL:

configure: Configured to build curl/libcurl:

  curl version:     7.48.0
  Host setup:       x86_64-unknown-linux-gnu
  Install prefix:   /usr/local
  Compiler:         gcc
  SSL support:      no      (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )

所以我查看了这个链接 https://curl.haxx.se/docs/install.html 我尝试了不同的命令:

root@carlo-ThinkPad-W541:~/curl-7.48.0# ./configure --with-ssl

尝试指定我的 openSSL 库的位置:

root@carlo-ThinkPad-W541:~/curl-7.48.0# ./configure --with-ssl=/lib/x86_64-linux-gnu/

设置环境变量:

root@carlo-ThinkPad-W541:~/curl-7.48.0# export LDFLAGS="-L/lib/x86_64-linux-gnu/"
root@carlo-ThinkPad-W541:~/curl-7.48.0# ./configure --with-ssl

但似乎没有任何效果,结果总是一样的:

[...]
configure: Configured to build curl/libcurl:

  curl version:     7.48.0
  Host setup:       x86_64-unknown-linux-gnu
  Install prefix:   /usr/local
  Compiler:         gcc
  SSL support:      no      (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )
  SSH support:      no      (--with-libssh2)
  zlib support:     enabled
  GSS-API support:  no      (--with-gssapi)
  TLS-SRP support:  no      (--enable-tls-srp)
  resolver:         default (--enable-ares / --enable-threaded-resolver)
  IPv6 support:     enabled
  Unix sockets support: enabled
  IDN support:      no      (--with-{libidn,winidn})
  Build libcurl:    Shared=yes, Static=yes
  Built-in manual:  enabled
  --libcurl option: enabled (--disable-libcurl-option)
  Verbose errors:   enabled (--disable-verbose)
  SSPI support:     no      (--enable-sspi)
  ca cert bundle:   /etc/ssl/certs/ca-certificates.crt
  ca cert path:     no
  ca fallback:      no
  LDAP support:     no      (--enable-ldap / --with-ldap-lib / --with-lber-lib)
  LDAPS support:    no      (--enable-ldaps)
  RTSP support:     enabled
  RTMP support:     no      (--with-librtmp)
  metalink support: no      (--with-libmetalink)
  PSL support:      no      (libpsl not found)
  HTTP2 support:    disabled (--with-nghttp2)
  Protocols:        DICT FILE FTP GOPHER HTTP IMAP POP3 RTSP SMTP TELNET TFTP

root@carlo-ThinkPad-W541:~/curl-7.48.0# 

最佳答案

curl 配置的 --with-ssl 选项将使其检查(理想情况下使用)OpenSSL。

您需要先确保您有一个 OpenSSL 开发包,以便构建过程可以使用 header 并找到相关的库等。

如果您的系统某处有自定义构建的 OpenSSL,您可以使用 ./configure --with-ssl=/path 指出该自定义 OpenSSL 安装树的 root/to/prefix.

如果仍然不能正确找到和使用 OpenSSL,您应该考虑打开配置在运行时创建的文件 config.log。然后在那里搜索 openssl 并尝试分析其中对 openssl 的检查以及失败的原因。

关于linux - libcurl 不支持 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36920998/

相关文章:

ubuntu - 在 Linux 上安装 WordNet (Ubuntu trusty)

node.js - 为了将域切换到HTTPS,我是否需要更改Apache或Node.js应用程序?

ssl - 如何让 Certbot 禁用某个密码

linux - 我需要计算文件中第一个字段中的符号数量,并将它们与另一个字段相加

VMWare guest 上的 Git 状态缓慢但主机上没有

python - pip 拒绝升级

android - 使 Android 应用程序使用 FIPS 140-2 验证加密

linux - 重新分页 PDF 文件以打印书籍

c++ - 在已经运行的循环上添加另一个计时器

c - GNU 为 binutils、gcc 和 glib 配置选项