忽略 letsencrypt 中的 Apache SSLCipherSuite 指令

忽略 letsencrypt 中的 Apache SSLCipherSuite 指令

我有一个使用 Apache 2.4 的 Web 应用程序,它运行外部 API。最近,由于 SSL 握手失败,一个客户端无法连接到我们的系统。他们访问了 ssllabs,发现我们的服务器支持以下适用于 TLS 1.2 的密码套件(他们正在使用):

TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x9e)             DH 2048 bits   FS    128
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)         ECDH secp521r1 (eq. 15360 bits RSA)   FS 128
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x9f)             DH 2048 bits   FS    256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)         ECDH secp521r1 (eq. 15360 bits RSA)   FS 256
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)   ECDH secp521r1 (eq. 15360 bits RSA)   FS 256

因为 SSL 握手失败完全发生在他们那边(当LogLevel设置为时,我的访问或错误日志中没有出现任何debug内容)他们认为这是一个SSLCipherSuite问题。

他们希望我添加以下内容SSLCipherSuiteTLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d)或者根据谷歌的介绍,在 Apache2 中添加以下内容:TLS_RSA_WITH_AES_256_GCM_SHA384

很酷,所以我首先在特定的 apache 配置文件中尝试它,但只是在所有 LetsEncrypt 指令之后包含以下行:

SSLCipherSuite TLS_RSA_WITH_AES_256_GCM_SHA384

不幸的是,ssllabs 和sslscan告诉我我需要的确切 CipherSuite 不存在,即使重新启动 apache2 也是如此。我得到了以下信息:

Preferred TLSv1.2  256 bits  ECDHE-RSA-AES256-GCM-SHA384   Curve 25519 DHE 253
Accepted  TLSv1.2  256 bits  DHE-RSA-AES256-GCM-SHA384     DHE 2048 bits
Accepted  TLSv1.2  256 bits  ECDHE-RSA-CHACHA20-POLY1305   Curve 25519 DHE 253
Accepted  TLSv1.2  128 bits  ECDHE-RSA-AES128-GCM-SHA256   Curve 25519 DHE 253
Accepted  TLSv1.2  128 bits  DHE-RSA-AES128-GCM-SHA256     DHE 2048 bits

因此我进入/etc/options/letsencrypt/options-ssl-apache.conf并将指令修改SSLCipherSuite为以下内容,然后重新启动 apache:

SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:TLS_RSA_WITH_AES_256_GCM_SHA384

请注意,我停留:TLS_RSA_WITH_AES_256_GCM_SHA384在原始指令的末尾。然而,ssllabs 和 sslscan 都没有列出此密码。

我不太擅长网络、apache 或一般的密码,所以我不确定我能做些什么来让这个密码出现并修复 SSL 握手错误。

相关内容