开发者社区 问答 正文

Suse 11的curl如何开启支持https?:报错

系统安装好已经有了openssl,curl等,但是curl的ssl支持是默认关闭的

如下:

curl -G https://192.168.1.203/sdk -G
curl: (1) Protocol https not supported or disabled in libcurl

用源码编译各种报错,好不容易configure过,make之后报错

`a local symbol* can not be used when making a shared object; recompile with -fPIC
libssl.a: could not read symbols: Bad value
然后就google不到了

展开
收起
kun坤 2020-06-14 13:43:38 929 分享 版权
阿里云 AI 助理回答

遇到这样的问题,通常是因为curl在编译时没有正确地链接到OpenSSL库,或者OpenSSL库本身编译时没有使用-fPIC选项。这里提供一个解决步骤来帮助你手动编译并启用curl的SSL支持:

1. 确认OpenSSL已安装且包含SSL支持

首先,确认你的系统中已经安装了OpenSSL,并且版本是支持SSL的。可以通过以下命令查看:

openssl version

2. 下载并解压curl源码

从curl官方网站下载最新源代码包,或者选择一个稳定版本。例如:

wget https://curl.se/download/curl-7.80.0.tar.gz
tar -xzf curl-7.80.0.tar.gz
cd curl-7.80.0

3. 配置编译选项

在编译curl之前,确保指定了OpenSSL的路径以及启用SSL支持。如果你的OpenSSL安装在非标准位置,需要通过--with-ssl指定。同时,为了确保动态库兼容性,添加--enable-sharedCFLAGS=-fPIC。执行如下配置命令:

./configure --prefix=/usr/local/curl --with-ssl --enable-shared CFLAGS=-fPIC

这里的/usr/local/curl是安装目录示例,你可以根据实际情况调整。

4. 编译并安装

如果配置成功,接下来进行编译和安装:

make
sudo make install

5. 验证SSL支持

安装完成后,测试curl是否成功启用了SSL支持:

curl -V

你应该能看到输出中包含SSL相关信息,如SSL Version: OpenSSL/1.1.1(版本号可能不同)。

6. 环境变量与PATH设置

如果curl安装到了非默认路径,确保它可以在命令行直接调用,可以将新安装的curl路径加入到环境变量PATH中:

echo 'export PATH="/usr/local/curl/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

完成以上步骤后,你应该能够正常使用带有SSL支持的curl访问https网站了。如果在编译OpenSSL或curl过程中仍然遇到问题,建议检查是否有依赖库缺失,或者尝试更新编译工具链(如gcc、make等)。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答