如何在 Apache 和 Nginx 中启用 TLS 1.3?
简介
随着网络攻击数量的不断增加,网站和服务器的安全变得比以往任何时候都更加重要。网站安全最重要的组成部分之一是传输层安全 (TLS),它对在 Web 服务器和客户端之间发送的数据进行加密。TLS 1.3 是 TLS 的最新版本,与以前的版本相比,它提供了增强的安全性、更快的连接和改进的性能。
在 Apache 和 Nginx 等 Web 服务器中启用 TLS 1.3 的重要性
Web 服务器负责处理敏感信息,例如通过其托管网站上的表单提交的登录凭据或个人数据。在 Web 服务器上启用最新版本的 TLS 有助于保护这些信息在传输过程中不被拦截或篡改。Apache 和 Nginx 是两种流行的开源 Web 服务器软件包,全球数百万用户使用它们在基于 Linux 的操作系统(如 Ubuntu 或 CentOS 等)上托管网站。
启用对这些软件包等最新 SSL/TLS 协议的支持将有助于提高安全级别,允许用户仅在通过 HTTPS 协议访问您托管的内容时与最新的密码套件通信。在本文中,我们将引导您完成在 Apache 和 Nginx 上启用 TLS 1.3 的确切步骤,以便您可以确保您的 Web 服务器使用当今可用的最新和最佳加密协议。
在 Apache 中启用 TLS 1.3
检查 Apache 版本与 TLS 1.3 的兼容性
在 Apache 中启用 TLS 1.3 之前,务必检查当前版本的 Apache 是否支持 TLS 1.3。从 Apache HTTP 服务器 2.4.36 版本开始,它默认内置支持 TLS 1.3,这意味着您无需安装任何其他模块或补丁即可启用它。要检查您当前的 Apache HTTP 服务器版本,请打开终端并运行以下命令:
apache2ctl -v
如果输出显示的 Apache HTTP 服务器版本低于 2.4.36,则需要在启用 TLS 1.3 之前升级服务器。
更新 OpenSSL 以支持 TLS 1.3
验证您的 Apache HTTP 服务器版本支持 TLS 1.3 后,下一步是更新 OpenSSL 以使其也支持 TLS 1.3。OpenSSL 是 SSL 和 TLS 协议的开源实现,许多 Web 服务器(包括 Apache 和 Nginx)都使用它。
要在基于 Ubuntu 或 Debian 的系统上安装和启用支持 TLS 1.3 的 OpenSSL,请运行以下命令:
sudo apt-get update sudo apt-get install -y libssl-dev openssl cd /usr/local/src/ sudo wget https://www.openssl.org/source/openssl-1.X.Y.tar.gz sudo tar xzf openssl-1.X.Y.tar.gz && cd openssl-1.X.Y sudo ./config && make && make test && sudo make install_sw
确保将“X”和“Y”替换为您要安装的 OpenSSL 的相应版本。
配置 Apache 以启用 TLS 1.3
安装和启用支持 TLS 1.3 的 OpenSSL 后,下一步是配置 Apache HTTP 服务器以使用它。要在 Apache 中启用 TLS 1.3,您需要将以下代码行添加到您的 SSL 配置文件:
SSLProtocol TLSv1.3 SSLCipherSuite TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
您可以根据您的系统在 `/etc/apache2/mods-enabled/ssl.conf` 或 `/etc/httpd/conf.d/ssl.conf` 中找到 SSL 配置文件。
使用 SSL Labs 或其他工具测试配置
使用 TLS 1.3 支持配置 Apache HTTP 服务器后,务必使用 SSL Labs 等在线工具测试连接。SSL Labs 提供了一个免费的在线工具,用于检查 Web 服务器中潜在的漏洞,并根据其安全级别对它们进行排名。
您可以使用此工具验证您的 Apache HTTP 服务器是否支持 TLS 1.3,以及启用它是否不存在任何安全风险。在 Apache HTTP 服务器上启用 TLS 1.3 可以通过为用户的数据传输提供更快的连接速度和更强大的加密协议来提高您网站的安全性。
在 Nginx 中启用 TLS 1.3
检查 Nginx 版本与 TLS 1.3 的兼容性
在 Nginx 中启用 TLS 1.3 之前,务必检查您的 Nginx 服务器与 TLS 1.3 协议的版本兼容性。要启用 TLS 1.3,您需要在服务器上至少安装 1.13.0 版本的 Nginx,因为这是第一个添加对 TLS 1.3 协议支持的版本。要检查您的 Nginx 服务器版本,请在终端中使用以下命令:
nginx -v
这将显示您已安装的 Nginx 服务器的当前版本。
更新 OpenSSL 以支持 TLS 1.3
要在 Nginx 服务器上启用 TLS 1.3,您还需要更新系统上的 OpenSSL,因为它为 SSL/TLS 协议提供加密支持。首先,使用以下命令了解系统上是否已安装 OpenSSL:
openssl version -a
如果它返回结果,则表示 OpenSSL 已安装在您的系统上,以及其当前安装的版本。要将 OpenSSL 升级到其最新的稳定版本(支持 TLS 1.3),您可以使用任何相关的包管理器(例如 apt 或 yum),具体取决于您使用的 Linux 发行版。
使用 ssl_protocols 指令配置 Nginx 以启用 TLS 1.3
更新 SSL 并确认一切正常后,现在是时候配置您的 nginx 服务器以启用 TLSv1.2 和/或 vTLSv1 了。配置过程非常简单 - 我们只需要一行 `ssl_protocols`,我们将其添加到我们的 nginx 配置文件中。
此文件的位置可能因系统而异。默认情况下,它应该位于 `/etc/nginx/nginx.conf`,但也可以在 `/usr/local/etc/nginx` 或 `/usr/local/nginx/conf` 中找到。
首先,使用任何文本编辑器打开配置文件。然后在 `http` 块中添加以下行:
ssl_protocols TLSv1.3;
这将为您的 Nginx 服务器启用 TLS 1.3。
使用 SSL Labs 或其他工具测试配置
在 Nginx 服务器上配置并启用 TLS 1.3 后,务必测试设置是否按预期工作。有几个工具可用于测试您的 SSL/TLS 配置,例如 Qualys SSL Labs、High-Tech Bridge 的 SSL/TLS 安全扫描仪或 ImmuniWeb 的 SSL 服务器测试。
ImmuniWeb 的 SSL 服务器测试是用于测试 SSL/TLS 配置的最全面的在线工具之一,并提供有关您的服务器在不同安全标准和协议方面的执行情况的详细报告。要使用此工具测试您的 Nginx 服务器,只需访问其网站并在提供的字段中输入您的域名。
完成后,单击“开始测试”以启动扫描过程。成功完成后,您将收到一份详细的报告,显示一切是否配置正确,或者是否存在需要修复的任何漏洞。
结论
在 Nginx 中启用 TLS 1.3 是一个简单的过程,它涉及在配置 nginx 以使用 nginx 配置文件中的 ssl_protocol 指令通过 TLSv1.3 协议接受流量之前,将 OpenSSL 更新到最新版本。启用 TLSv1.3 包括多个步骤,例如检查 Nginx 与此协议版本的兼容性、更新 OpenSSL 库、配置 ssl_protocol 指令等。启用 TLSv1.3 后,应彻底测试您的 SSL/TLS 配置,以确保为您的网站访问者提供最大安全性。