gpt4 book ai didi

openssl s_client 没有密码匹配

转载 作者:行者123 更新时间:2023-12-03 23:51:23 25 4
gpt4 key购买 nike

尝试在 openssl s_client 中设置密码时出现以下错误:

# openssl s_client -connect 10.0.0.3:8443 -cipher TLS_AES_128_GCM_SHA256
Error with command: "-cipher TLS_AES_128_GCM_SHA256"
140230972122240:error:1410D0B9:SSL routines:SSL_CTX_set_cipher_list:no cipher match:../ssl/ssl_lib.c:2549:

当我在 Google 中查找此错误时,它表示 openssl ciphers 报告的列表中缺少该密码。 .然而,这种情况并非如此:
# openssl ciphers | sed 's/:/\n/g' | grep TLS_AES_128_GCM_SHA256
TLS_AES_128_GCM_SHA256

此错误不是服务器配置的功能,因为即使我更改 -connect 也会打印IP地址是虚假的。很明显,问题发生在 s_client 之前甚至尝试连接到服务器。

鉴于此错误消息似乎与 openssl ciphers 无关,这是什么意思? ?

最佳答案

TLSv1.3 显着改变了密码套件的工作方式。因此,为 TLSv1.2 及更低版本定义的密码套件在 TLSv1.3 中不起作用,反之亦然。出于这个原因,OpenSSL 也在内部单独处理它们,并且它们以不同的方式配置——即使“在线”TLSv1.2 和 TLSv1.3 密码套件列表被合并。 openssl ciphers命令报告 TLSv1.2 和 TLSv1.3 密码套件的合并列表。

TLS_AES_128_GCM_SHA256 实际上是一个 TLSv1.3 密码套件:

$ openssl ciphers -v | grep TLS_AES_128_GCM_SHA256
TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD

因此,您需要在 s_client 中使用不同的命令行选项来使用该密码套件:
$ openssl s_client -connect 10.0.0.3:8443 -ciphersuites TLS_AES_128_GCM_SHA256

尽管实际上上述命令将发送默认 TLSv1.2 密码套件以及上述 TLSv1.3 密码套件的组合列表。如果您只想要一个密码套件,那么您还需要禁用 TLSv1.3 以下的协议(protocol)版本:
$ openssl s_client -connect 10.0.0.3:8443 -ciphersuites TLS_AES_128_GCM_SHA256 -tls1_3

但是请注意,您感兴趣的密码套件位于默认的 TLSv1.3 密码套件集中,因此如果您不设置任何其他 TLSv1.3 密码套件配置,无论如何它都会被发送。

关于openssl s_client 没有密码匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57212182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com