什么决定了密码套件?

What determines the cipher suite?

我在我的 TLS 应用程序上使用 mbedtls。我有一个关于密码套件的问题。 当我调试我的过程时,我从服务器端得到以下几行:

selected ciphersuite: TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256

选择此 CHACHA20-POLY1305 密码的原因是什么?钥匙?或证书?还是别的?

如何将我的 chipher 套件更改为 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

What is the reason for selecting this CHACHA20-POLY1305 cipher

服务器和客户端支持的密码,包括它们的首选项。因此,它取决于客户端和服务器配置及其 TLS 堆栈。

How can I change my chipher suite to TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256?

当前选择的密码套件中的RSA表示使用RSA证书进行身份验证。您想要的密码中的 ECDSA 意味着服务器需要改用 ECDSA 证书,即您无法使用 RSA 证书实现此目的。

一些服务器可以同时使用 RSA 和 ECDSA 证书,在这种情况下,证书的选择再次取决于有关支持的密码、首选项等的客户端和服务器配置。