cURL 显示 SSLv3 而不是 TLSv1
cURL displays SSLv3 instead of TLSv1
如果 SSL 被函数禁用,为什么 cURL 7.19 在握手期间显示 SSLv3 curl_easy_setopt?
curl_easy_setopt(m_curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
cURL 输出:
CURL Info: SSLv3, TLS handshake, Client hello (1):
CURL Info: SSLv3, TLS handshake, Server hello (2):
CURL Info: SSLv3, TLS handshake, CERT (11):
CURL Info: SSLv3, TLS handshake, Server finished (14):
CURL Info: SSLv3, TLS handshake, Client key exchange (16):
CURL Info: SSLv3, TLS change cipher, Client hello (1):
CURL Info: SSLv3, TLS handshake, Finished (20):
CURL Info: SSLv3, TLS handshake, Unknown (4):
CURL Info: SSLv3, TLS change cipher, Client hello (1):
CURL Info: SSLv3, TLS handshake, Finished (20):
CURL Info: SSL connection using DES-CBC3-SHA
cURL 显示"SSLv3"可以吗?
我将引用我自己的答案(针对另一个问题):
Curl的调试代码(
-v
)仅显示主版本号 (主要区分SSLv2和SSLv3+类型的消息,参见ssl_tls_trace
), 所以当你使用TLS 1.0或更高版本时,它仍然会显示"SSLv3" (因为它们实际上是 SSL v3.1 或更高版本,所以 3 是相同的主要 版本号)。
如果要确保使用正确的版本,则可能应该检查setopt
的返回值。
此外,您可以使用 trace 选项详细查看握手:
== Info: SSLv3, TLS handshake, Client hello (1): => Send SSL data, 512 bytes (0x200) 0000: 01 00 01 fc 03 03
第 5 个字节将是主要修订号(此处为 03),第 6 个字节将是次要修订号。
- (03, 00) 是 SSLv3
- (03, 01) 是 TLSv1.0
- (03, 02) 是 TLSv1.1
- (03, 03) 是 TLSv1.2
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 继承期间显示未知行为的子类
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 程序崩溃并显示"std::out_of_range"错误
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 从数据库实时显示QT c++中的数据
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 显示错误输出的简单数组排序程序
- Qt自定义QPush按钮未显示在布局上
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 显示基于用户输入的整数的字符
- 使用QTreeView,如何通过调用函数只突出显示特定的行/列
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- 密码登录程序将永远循环并显示不正确的结果
- cURL 显示 SSLv3 而不是 TLSv1