我正在运行 Apache2 版本:
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2018-04-25T11:38:24
我想启用 TLSv1.3,但如果我放入文件中,我会在 Apache2 中收到以下SSLProtocol TLSv1.2 TLSv1.3
错误ssl.conf
:
# apachectl configtest
AH00526: Syntax error on line 79 of /etc/apache2/mods-enabled/ssl.conf:
SSLProtocol: Illegal protocol 'TLSv1.3'
Action 'configtest' failed.
The Apache error log may have more information.
是否还无法在 Apache2 中启用 TLSv1.3?
我知道Nginx可以做到,但是这个问题针对的是Apache2。
答案1
Debian Buster = 支持 TLSv1.3
在 Debian Buster(目前正在测试中)中,已经支持 TLSv1.3。
以下信息的日期为:
# date -I
2019-02-24
阿帕奇2版本:
# apache2 -v
服务器版本:Apache/2.4.38(Debian)
服务器搭建: 2019-01-31时间20:54:05
在哪里启用
全球范围内:
/etc/apache2/mods-enabled/ssl.conf
本地于:
您的虚拟主机位于:
/etc/apache2/sites-enabled/
如何启用
截至目前,TLSv1.1 已最终被弃用。因此,您只需要 TLSv1.2 和 TLSv1.3。
为此,请将这一行放入上述文件中:
SSLProtocol -all +TLSv1.3 +TLSv1.2
密码套件
密码套件现在分为 2 类,即SSL
(TLSv1.3 以下)和TLSv1.3
,您可能想使用自己的一组密码,仅以此为例:
SSLCipherSuite TLSv1.3 TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256
SSLCipherSuite SSL ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256
曲线
最后有一个重要提示:
您可以/应该启用一条新曲线:X25519。
您可以像这样执行此操作,同样只是示例:
SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1
SSLLabs 上的域测试示例
实验性:此服务器支持 TLS 1.3 (RFC 8446)。
答案2
Apache2 版本 2.4.36 和 OpenSSL 1.1.1 现在支持 TLSv1.3来源。
答案3
Apache 2.4 尚不支持 TLSv1.3。
当 OpenSSL 支持时(请参阅此处的信息),Apache 2.4应该也有。
答案4
事实证明,更新到 OpenSSL 1.1.1 还不够。阿帕奇必须是改变了以及。那个变化是向后移植至版本 2.4.29。因此,从周一开始2.4.29-1ubuntu4.12,Ubuntu 18.04 LTS 现在支持 TLS 1.3。这就是原贴者提到的配置。
由于 Stack Exchange 最近弃用了 TLS 1.0,TLS 版本、密码套件和曲线仍然是一个热门争论显示。测试ssl.sh3.0 对 Apache 2.4.29 和 OpenSSL 1.1.1 的默认设置非常满意。因此,您应该仔细检查是否无意中禁用了曲线 X448 或 TLS 1.3 等新技术。例如,如果您使用SSLProtocol -all
,您将禁用所有即将推出的协议版本。例如,如果您使用SSLOpenSSLConfCmd Curves
,则将禁用所有即将到来的曲线。
因此,我不确定调整这些默认值一次然后忘记它们是否是一个好主意。相反,对于那些喜欢更改默认设置、寻找维护配置的人,我使用了 Mozilla发电机作为起点。在今天结束时,明天请仔细检查,并且由于已经提到的配置曲线的方法,我选择了SSL_Conf_Cmd完整的API:
SSLEngine on
#SSLOpenSSLConfCmd MinProtocol TLSv1 # commented because current default in Ubuntu 18.04 LTS
SSLOpenSSLConfCmd Ciphersuites TLS_AES_128_GCM_SHA256 # if you have the computing resources, consider not to tweak this
SSLOpenSSLConfCmd CipherString ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:AES128-SHA
SSLOpenSSLConfCmd Curves X25519:secp256r1:secp384r1 # if you have the computing resources, consider not to tweak this
SSLOpenSSLConfCmd Options ServerPreference,-SessionTicket
如果您选择基于双 ECDSA+RSA 的证书安装,例如来自 Sectigo 的 ECC 和来自 RapidSSL 的 RSA,则满足上述要求安全等级3,即使与非常老的客户端仍然向后兼容。