如何仅支持 TLS 1.1 和 1.2(在我的网络服务中)?

How do I support TLS 1.1 and 1.2 only (in my webservice)?

中,我询问了有关在 Delphi XE2 下限制我的网络服务可用 SSL/TLS 协议的问题。
通过使用 TIdServerIOHandlerSSLOpenSSL 组件并将其 SSLOptions.SSLVersions 属性设置为 [sslvSSLv23,sslvTLSv1] 我能够将可用协议限制为 TLS 1.x.

现在,升级到 Delphi 西雅图升级 1 后,我想进一步将其限制为仅 TLS 1.1 和 1.2:

LIOHandleSSL.SSLOptions.SSLVersions := [sslvTLSv1_1,sslvTLSv1_2];

但这根本行不通。尝试连接时,我得到

exception class EidOSSLUnderlying CryptoError with message
'Error accepting connection with SSL. error: 140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol'

Error connecting with SSL
EOF was observed that violates the protocol

这是怎么回事?如何解决?

备注:

我个人只是将 SSLVersion 保持为默认值并使用 SSLOptions.CipherList 来限制仅使用已知的 SSL secure ciphers:

LIOHandleSSL.SSLOptions.CipherList := 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';

这应该隐式地禁用旧的 SSL 版本,因为它们不支持指定的密码 AFAIK。

请注意,OpenSSL 1.0.2g+ 默认禁用 SSLv3,除非在编译期间明确激活它。