首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >openssl s_client没有密码匹配

openssl s_client没有密码匹配
EN

Stack Overflow用户
提问于 2019-07-26 01:54:18
回答 3查看 10.5K关注 0票数 7

当试图在openssl s_client中设置密码时,我会得到以下错误

代码语言:javascript
运行
复制
# 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:

当我在谷歌上查找这个错误时,它说密码在openssl ciphers报告的列表中丢失了。然而,情况并非如此:

代码语言:javascript
运行
复制
# openssl ciphers | sed 's/:/\n/g' | grep TLS_AES_128_GCM_SHA256
TLS_AES_128_GCM_SHA256

此错误不是服务器配置的函数,因为即使我将-connect IP地址更改为假的,也会打印该错误。所以很明显,在s_client试图连接到服务器之前,问题就已经发生了。

考虑到这个错误消息似乎与openssl ciphers无关,它意味着什么?

EN

Stack Overflow用户

回答已采纳

发布于 2019-07-26 08:46:03

TLSv1.3极大地改变了密匙的工作方式。因此,为TLSv1.2及以下版本定义的密匙在TLSv1.3中不起作用,反之亦然。出于这个原因,OpenSSL在内部也分别处理它们,并且它们以不同的方式配置--尽管TLSv1.2和TLSv1.3加密套件的列表合并了。openssl ciphers命令报告TLSv1.2和TLSv1.3密码套件的合并列表。

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

代码语言:javascript
运行
复制
$ 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中使用不同的命令行选项来使用该加密套件:

代码语言:javascript
运行
复制
$ openssl s_client -connect 10.0.0.3:8443 -ciphersuites TLS_AES_128_GCM_SHA256

尽管实际上,上面的命令将发送默认TLSv1.2加密套件的组合列表,以及上面的TLSv1.3加密套件。如果您只需要一个密匙套件,那么还需要禁用TLSv1.3下面的协议版本:

代码语言:javascript
运行
复制
$ openssl s_client -connect 10.0.0.3:8443 -ciphersuites TLS_AES_128_GCM_SHA256 -tls1_3

但是,请注意,您感兴趣的密码套件是在默认的TLSv1.3密码套件中,所以如果您不设置任何其他TLSv1.3加密套件配置,它还是会被发送。

票数 7
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57212182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档