我正在 CentOS 7 上使用 OpenSSL(版本 1.1.1g)编译 cURL(版本 7.69.1)。
这就是我所做的——
- 用于编译 curl
./configure --with-ssl --with-nghttp2 {nghttp2 用于添加 HTTP/2 功能) 制作 进行安装
- 用于编译 OpenSSL
./配置 制作 进行测试 进行安装
(虽然,我认为我应该在 cURL 之前编译 OpenSSL,但是在编译 cURL 之后,我意识到我当前的 OpeSSL 版本不支持 TLS1.3,所以我必须编译最新版本的 cURL。)
现在,当我尝试通过 tls1.3 访问该网站时,出现以下错误——
#curl https://tls1.3.nkn.in --tlsv1.3 -v * 尝试 10.40.122.23:443... * 连接到 tls1.3.nkn.in (10.40.122.23) 端口 443 (#0) * OpenSSL 在构建时不支持 TLS 1.3 * 关闭连接 0 curl:(4)OpenSSL 构建时不支持 TLS 1.3
然后,我尝试再次编译 cURL,但在 cURL 配置中注意到以下语句——
检查 OpenSSL 标头版本...1.1.1 - 0x1010107fL 检查 OpenSSL 库版本...1.0.2
我该怎么做才能解决这个问题?
答案1
经过数小时的故障排除后,它按照以下步骤工作 -
- 使用 --prefix 选项重新编译 OpenSSL
# ./config --prefix=/usr/local/OpenSSL 制作 进行安装
- 再次重新编译 cURL
./configure --with-ssl=/usr/local/OpenSSL --with-nghttp2=/usr/local {nghttp2 用于 HTTP/2 支持} 制作 进行安装
以下输出显示了使用 OpenSSL/1.1.1g 和 HTTP/2 支持的 cURL 的编译
# curl -V curl 7.69.1(x86_64-pc-linux-gnu)libcurl/7.69.1 OpenSSL/1.1.1g zlib/1.2.7 nghttp2/1.41.0-DEV 发布日期:2020-03-11 协议:dict 文件 ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 功能:AsynchDNS HTTP2 HTTPS 代理 IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP UnixSockets
谢谢。