关于TLSV1.3端点上的curl命令的小问题,以及错误“OpenSSL是在没有TLS 1.3支持的情况下构建的”。
该端点是我无法控制的第三方端点,但根据规范,它支持TLSv1.3。
因此,如果我像这样 curl :它将产生错误,这在某种程度上是意料之中的。
./curl -vik https://third-party.com:18090/health
* Trying x:18090...
* Connected to third-party.com (x) port 18090 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
* CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS header, Unknown (21):
* TLSv1.2 (IN), TLS alert, protocol version (582):
* error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
* Closing connection 0
curl: (35) error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
但我也试过这个:(请注意--tlsv1.3,它将返回此错误。
curl --tlsv1.3 -vik https://third-party.com:18090/health
* Trying x:18090...
* Connected to third-party.com (x) port 18090 (#0)
* OpenSSL was built without TLS 1.3 support
* Closing connection 0
curl: (4) OpenSSL was built without TLS 1.3 support
OpenSSL是在没有TLS 1.3支持的情况下构建的
问题是,我还没有构建openssl,我只是做了yum -y install -y openssl openssl-devel
我可以问一下如何让我的curl在tlsv1.3下工作吗?或者如何解决这个问题?
谢谢你
3条答案
按热度按时间kfgdxczn1#
“OpenSSL是在没有TLS1.3支持的情况下构建的”这句话可能会引起误解。(不是其他几个选项中的一个)并且正在使用的OpenSSL版本不支持TLS1.3。查看您的错误消息,它显然来自低于1.1.0的OpenSSL版本(2016年发布),当然,这些版本不支持TLS1.3是正确的。现在只有OpenSSL 1.1.1(2018年)支持TLS1.3(目前处于alpha版本的3.0.0也将支持)。
您不能使curl执行TLS1.3。由于您显然使用某种类型的RedHat系列系统,根据系统的不同,可能在标准库或可选库中有其他curl构建版本。如果没有,您将需要获得OpenSSL 1.1.1,它也可能在库中可用,否则您将不得不从源代码构建。然后从源代码构建(足够新)curl以使用OpenSSL。
另一种方法是使用另一个系统,而不是直接在您的系统上运行:一个真实的系统,可能在云中;或系统上的虚拟机;、或基本上仅虚拟化OS而不虚拟化底层硬件的对接器或类似容器。
ilmyapht2#
在macOS上,我成功地安装了
brew install curl
的新curl版本。然后你可以运行一些东西,比如
或
ffscu2ro3#
要在macOS下直接在
brew install curl
之后使用curl
,您需要在您的PATH
中通过echo 'export PATH="/usr/local/opt/curl/bin:$PATH"' >> /Users/YOURNAME/.bash_profile
所以我们可以直接使用
curl
curl --tlsv1.3 xxxxx
还有一件事,另一条建议放在你的
.bash_profile
(或.bashrc
):export HOMEBREW_FORCE_BREWED_CURL=1
但是,它无法使用由
brew
安装的最新curl
。