比较 SSL 密码套件表示法



我们有一个客户端,其支持的TLS 1.2密码套件注意到这种格式...

Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)

我们有服务器(我认为是nginx?(,其支持的列表是这种表示法......

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM

客户端无法建立连接,因此我假设客户端/服务器不同意支持的密码。 任何想法如何从缩写的服务器符号中获取支持的密码列表?

我知道EECDH是ECDHE的别名,所以我会假设这两种密码之一会匹配。

Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)

任何想法为什么不呢?

openssl ciphers -V 'EECDH+AESGCM:EDH+AESGCM'为您提供OpenSSL表示法中的所有密码。要将其转换为 RFC 中的符号,请参阅人员密码末尾的映射。执行此操作时,您将获得以下已正确识别的共享密码:

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

但是,这些都是 ECDSA 密码,因此它们要求服务器具有 ECC 证书。我假设在您的情况下,服务器只有一个 RSA 证书(这仍然更常见(,因此基本上没有共享密码。相反,客户端需要提供以下密码:

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA384

如果您的服务器是公开可用的,请转到 SSLLabs 并测试您的服务器是否支持的密码套件。它将为您提供所需格式的列表。

如果您的服务器不是公共的,则可以对 testssl.sh 执行相同的操作。

最新更新