1

我有一个使用 Apache Web 服务器和 OpenSSL 1.1.1 的简​​单站点。我已经按预期配置了所有内容,但在显示 TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256、TLS_AES_128_GCM_SHA256 的情况下,选择加密的其他两个 TLS_AES_128_CCM_8_SHA256、TLS_AES_128_CCM_SHA256 显示错误。

证明前三个被正确挑选

错误显示了何时选择最后两个密码

来自 httpd-ssl.conf 的代码在 这里我只更改了没有别的选择的密码,前三个它起作用了。

然后我也去检查openssl.exe是否有任何问题。我发现最后两个密码不受支持/不在密码列表中。

通过 openssl 加密列表

如何将最后两个密码添加到列表中以便我可以使用它们?或者我需要添加什么以便我可以使用它们?我正在使用它进行测试。任何帮助都将不胜感激。对不起,我的英语不好。

4

2 回答 2

1

根据OpenSSL TLSv1.3 文档

OpenSSL 已实现对五个 TLSv1.3 密码套件的支持,如下所示:

  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_GCM_SHA256
  • TLS_AES_128_CCM_8_SHA256
  • TLS_AES_128_CCM_SHA256

由于 TLSv1.2 及更低版本的密码套件与 TLSv1.3 的密码套件的工作方式之间存在重大差异,因此它们在 OpenSSL 中的配置也不同。

默认情况下,上述密码套件中的前三个默认启用。这意味着如果您没有明确的密码套件配置,那么您将自动使用这三个并且能够协商 TLSv1.3。请注意,更改 TLSv1.2 及以下密码列表对 TLSv1.3 密码套件配置没有影响。

因此,如果您只是运行,openssl ciphers那么您将只使用默认密码列表,而看不到最后两个。

但是,如果您明确要求它们(使用ciphersuitesTLSv1.3 的新选项),那么如果您的 OpenSSL 版本支持它们,您将看到它们:

openssl ciphers -tls1_3 -v -s -ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_8_SHA256:TLS_AES_128_CCM_SHA256

TLS_AES_256_GCM_SHA384  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any      Au=any  Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256  TLSv1.3 Kx=any      Au=any  Enc=AESGCM(128) Mac=AEAD
TLS_AES_128_CCM_8_SHA256 TLSv1.3 Kx=any      Au=any  Enc=AESCCM8(128) Mac=AEAD
TLS_AES_128_CCM_SHA256  TLSv1.3 Kx=any      Au=any  Enc=AESCCM(128) Mac=AEAD

您还需要 ECDSA 证书,而不是通常的 RSA 证书,才能使用此处讨论的最后两个密码:https ://github.com/openssl/openssl/issues/8297 。

也不知道有任何浏览器实现了这些 CCM 密码,因此即使您确实将其全部整理以使其正常工作,也不确定您目前将使用什么来通过该密码进行连接。

于 2020-08-06T13:10:06.260 回答
0

转到文件 - ssl.h。查找宏 - “TLS_DEFAULT_CIPHERSUITES”。

将此宏值更改为 -

#define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:"
"TLS_CHACHA20_POLY1305_SHA256:"
"TLS_AES_128_CCM_SHA256:"
"TLS_AES_128_CCM_8_SHA256:"
"TLS_AES_128_GCM_SHA256"

所有 5 个密码都将开始工作。您可以使用命令检查所有密码。openssl s_client -tls1_3 -ciphersuites 'TLS_AES_128_CCM_8_SHA256' -connect

于 2021-06-25T10:55:42.120 回答