使用Openssl s_服务器限制密码套件选择

使用Openssl s_服务器限制密码套件选择,openssl,Openssl,我想针对测试服务器测试我的客户机,所以我使用opensslserver命令。目标是将服务器配置为仅选择我配置的1个密码套件。这样我可以测试客户端发送的不同密码套件。我无法更改客户端的密码诉讼列表 要启动我使用的服务器,请执行以下操作: `{` openssl s_server -accept 50000 -cert ../server/server_certificate.pem -key ../server/private_key.pem -CAfile ca_certificate.pem

我想针对测试服务器测试我的客户机,所以我使用opensslserver命令。目标是将服务器配置为仅选择我配置的1个密码套件。这样我可以测试客户端发送的不同密码套件。我无法更改客户端的密码诉讼列表

要启动我使用的服务器,请执行以下操作:

`{` openssl s_server -accept 50000 -cert ../server/server_certificate.pem -key ../server/private_key.pem -CAfile ca_certificate.pem  -cipher ECDHE-RSA-AES256-GCM-SHA384 -serverpref -state -debug -status_verbose }
为了测试服务器是否选择配置的密码套件,我启动客户机

openssl s_client -connect 3.135.190.131:50000 -cert ../client/client_certificate1.pem -key ../client/private_key.pem -CAfile ca_certificate.pem
但是,当我开始将客户端连接到服务器时,服务器选择:TLS\u AES\u 256\u GCM\u SHA384而不是配置的:ECDHE-RSA-AES256-GCM-SHA384 此外,我检查了跟踪,客户端确实在密码套件列表中发送了ECDHE-RSA-AES256-GCM-SHA384


您能建议服务器端命令有什么错误吗?

您的服务器和客户端希望使用TLS 1.3,它有自己严格的密码套件集,不包括
ECDHE-RSA-AES256-GCM-SHA384

可以使用
-ciphersuites
参数将其更改为
s\u server
。这套密码套件是对由
-ciphers
设置的TLS 1.2密码的补充。根据[手册页](:

-密码val

这允许修改服务器使用的TLSv1.2及以下密码套件的列表。此列表与任何 TLSv1.3已配置的密码套件。当客户端发送 支持的密码列表第一个客户端密码也包含在 使用服务器列表。因为客户端指定了首选项 顺序,服务器密码列表的顺序不相关。请参阅 密码命令获取更多信息

-密码套件val

这允许修改服务器使用的TLSv1.3密码套件列表。此列表与任何TLSv1.2和 下面是已配置的密码套件。当客户端发送 支持的密码列表第一个客户端密码也包含在 使用服务器列表。因为客户端指定了首选项 顺序,服务器密码列表的顺序不相关。请参阅 密码命令以获取详细信息。此列表的格式为 TLSv1.3密码套件名称的单冒号(“:”)分隔列表

如果我们尝试完全删除TLS 1.3密码套件,只保留TLS 1.2密码,服务器端会发生以下情况:

$ openssl s_server -accept 50000 -cert node.crt -key node.key -CAfile ca.crt  -cipher ECDHE-RSA-AES256-GCM-SHA384 -serverpref -state -debug -status_verbose -ciphersuites ""
Using default temp DH parameters
ACCEPT
write to 0x55c8894b0bd0 [0x55c8894c83f0] (7 bytes => 7 (0x7))
0000 - 15 03 03 00 02 02 28                              ......(
SSL3 alert write:fatal:handshake failure
SSL_accept:error in error
ERROR
139842681824576:error:141FC0B5:SSL routines:tls_setup_handshake:no ciphers available:../ssl/statem/statem_lib.c:127:No ciphers enabled for max supported SSL/TLS version
shutting down SSL
CONNECTION CLOSED
服务器上没有启用有效的TLS 1.3密码套件,但客户端和服务器都支持TLS 1.3。这会导致连接失败(没有TLS降级)

相反,您需要在双方中的一方上强制将max版本升级到TLS 1.2。我们可以在服务器上执行此操作(将
-ciphersuites
单独保留,因为它将不再使用):


这在

的密码套件一节中有更详细的介绍,您的服务器和客户端想要讲TLS 1.3,它有自己严格的密码套件集,不包括ECDHE-RSA-AES256-GCM-SHA384

可以使用
-ciphersuites
参数将其更改为
s_server
。该密码套件集是由
-ciphers
设置的TLS 1.2密码的补充。根据[手册页](:

-密码val

这允许修改服务器使用的TLSv1.2及以下密码套件的列表。此列表与任何 TLSv1.3已配置的密码套件。当客户端发送 支持的密码列表第一个客户端密码也包含在 使用服务器列表。因为客户端指定了首选项 顺序,服务器密码列表的顺序不相关。请参阅 密码命令获取更多信息

-密码套件val

这允许修改服务器使用的TLSv1.3密码套件列表。此列表与任何TLSv1.2和 下面是已配置的密码套件。当客户端发送 支持的密码列表第一个客户端密码也包含在 使用服务器列表。因为客户端指定了首选项 顺序,服务器密码列表的顺序不相关。请参阅 密码命令以获取详细信息。此列表的格式为 TLSv1.3密码套件名称的单冒号(“:”)分隔列表

如果我们尝试完全删除TLS 1.3密码套件,只保留TLS 1.2密码,服务器端会发生以下情况:

$ openssl s_server -accept 50000 -cert node.crt -key node.key -CAfile ca.crt  -cipher ECDHE-RSA-AES256-GCM-SHA384 -serverpref -state -debug -status_verbose -ciphersuites ""
Using default temp DH parameters
ACCEPT
write to 0x55c8894b0bd0 [0x55c8894c83f0] (7 bytes => 7 (0x7))
0000 - 15 03 03 00 02 02 28                              ......(
SSL3 alert write:fatal:handshake failure
SSL_accept:error in error
ERROR
139842681824576:error:141FC0B5:SSL routines:tls_setup_handshake:no ciphers available:../ssl/statem/statem_lib.c:127:No ciphers enabled for max supported SSL/TLS version
shutting down SSL
CONNECTION CLOSED
服务器上没有启用有效的TLS 1.3密码套件,但客户端和服务器都支持TLS 1.3。这会导致连接失败(没有TLS降级)

相反,您需要在双方中的一方上强制将max版本升级到TLS 1.2。我们可以在服务器上执行此操作(将
-ciphersuites
单独保留,因为它将不再使用):

本手册的“密码套件”一节详细介绍了这一切