使用 curl 时指定次要 TLS 版本

vpr*_*m86 45 curl tls

有没有办法指定 curl 使用特定的 TLS 版本?像 1.1 还是 1.2?我在命令帮助中只能看到 sslv3 和 tlsv1 选项。我拿了最新的 src 并用 openssl 1.0.1e 编译它。仍然没有在帮助中看到直接选项。有没有其他方法可以设置?

Red*_*ick 48

Curl 具有控制使用的 TLS 版本的选项。在此答案的上次修订日期,如果您想指定使用 TLS 1.2 但不使用 1.1 或 1.3 等,则需要类似

curl --tlsv1.2 --tls-max 1.2 ...
Run Code Online (Sandbox Code Playgroud)

自从提出原始问题以来,Curl 发生了一些相关的变化。


版本 7.54.0

从 7.54.0 版开始,行为发生了变化,请参阅nelsonda's answer

--tlsv1.2现在这样的选项指定要使用的最低版本,它们不再指定要使用的确切版本。

要指定要使用的确切版本,您可能还必须指定一个值 --tls-max

curl --tlsv1.2 --tls-max 1.2 ...
Run Code Online (Sandbox Code Playgroud)

版本 7.52.0

--tlsv1.3除了下面列出的其他选项之外,还引入了7.52.0 版。


版本 7.34.0

从 7.34.0 版本开始,Curl 有 options --tlsv1.0--tlsv1.1并且--tlsv1.2为此目的。

手册

-1, --tlsv1

(SSL) 在与远程 TLS 服务器协商时,强制 curl 使用 TLS 版本 1.x。您可以使用选项 --tlsv1.0、--tlsv1.1 和 --tlsv1.2 来更精确地控制 TLS 版本(如果使用的 SSL 后端支持这种级别的控制)。

...

--tlsv1.2

(SSL) 在与远程 TLS 服务器协商时,强制 curl 使用 TLS 版本 1.2。(在 7.34.0 中添加)



nel*_*nda 8

Curl 的行为发生了变化!

对于 7.54.0 之前的版本,RedGrittyBrick 的回答仍然正确。对于 7.54.0 之后的 curl 版本,选项--tlsv1.0--tlsv1.1--tlsv1.2设置curl 将使用的最低TLS 版本。要指定最大使用--tls-max <VERSION>

联机帮助页

--tls-max

(SSL) VERSION 定义了支持的最大 TLS 版本。最低可接受版本由 tlsv1.0、tlsv1.1、tlsv1.2 或 tlsv1.3 设置。