如何在 Apache2 中启用 TLSv1.3?

Jam*_*ski 17 ssl apache-httpd

我正在运行 Apache2 版本:

Server version: Apache/2.4.29 (Ubuntu)
Server built:   2018-04-25T11:38:24
Run Code Online (Sandbox Code Playgroud)

我想使TLSv1.3,但我得到一个错误在下面的Apache2,如果我把SSLProtocol TLSv1.2 TLSv1.3ssl.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.
Run Code Online (Sandbox Code Playgroud)

是否无法在 Apache2 中启用 TLSv1.3(还)?

我知道 Nginx 可以做到,但是这个问题针对的是 Apache2。

Lin*_*eak 21

Debian Buster = 支持 TLSv1.3

在 Debian Buster(目前正在测试中)中,已经支持 TLSv1.3。

以下信息的日期为:

# date -I
Run Code Online (Sandbox Code Playgroud)

2019-02-24


Apache2 版本:

# apache2 -v
Run Code Online (Sandbox Code Playgroud)

服务器版本:Apache/ 2.4.38 (Debian)
服务器构建时间: 2019-01-31 T20:54:05


在哪里启用

在全球范围内:

/etc/apache2/mods-enabled/ssl.conf
Run Code Online (Sandbox Code Playgroud)

在本地:

您的 VirtualHost(s) 位于:

/etc/apache2/sites-enabled/
Run Code Online (Sandbox Code Playgroud)

如何启用

到目前为止,TLSv1.1 终于被弃用了。因此,您只需要 TLSv1.2 和 TLSv1.3。

为此,请将此行放在上述文件中:

SSLProtocol -all +TLSv1.3 +TLSv1.2
Run Code Online (Sandbox Code Playgroud)

密码套件

密码套件现在分为 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
Run Code Online (Sandbox Code Playgroud)

曲线

最后的一个重要说明:

您可以/应该启用一条新曲线:X25519

例如,您可以像这样执行此操作,同样只是示例:

SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1:prime256v1
Run Code Online (Sandbox Code Playgroud)

SSLLabs 上的示例域测试

实验性:此服务器支持 TLS 1.3 (RFC 8446)。

启用 TLSv1.3


小智 13

TLSv1.3 现在在带有 OpenSSL 1.1.1 Source 的Apache2 版本 2.4.36 中得到支持。


小智 5

Apache 2.4 尚不支持 TLSv1.3。

当 OpenSSL 支持它时(请参阅此处的信息),Apache 2.4 也应该拥有它。