27.7. 在 Apache HTTP 服务器中设置支持的 TLS 协议版本
默认情况下,RHEL 上的 Apache HTTP 服务器使用系统范围的加密策略来定义安全默认值,这些值也与最新的浏览器兼容。例如,DEFAULT
策略定义了在 apache 中只启用 TLSv1.2
和TLSv1.3
协议版本。
您可以手动配置 Apache HTTP 服务器支持哪个 TLS 协议版本。如果您的环境只需要启用特定的 TLS 协议版本,请按照以下步骤操作,例如:
-
如果您的环境要求客户端也可以使用弱
TLS1
(TLSv1.0)或TLS1.1
协议。 -
如果你想将 Apache 配置为只支持
TLSv1.2
或TLSv1.3
协议。
先决条件
- TLS 加密在服务器上启用
- 如果服务器运行 RHEL 9.2 或更高版本,并且启用了 FIPS 模式,客户端必须支持 Extended Master Secret (EMS)扩展或使用 TLS 1.3。没有 EMS 的 TLS 1.2 连接会失败。如需更多信息,请参阅红帽知识库解决方案 强制实施 TLS 扩展"Extended Master Secret" 。
流程
编辑
/etc/httpd/conf/httpd.conf
文件,并将以下设置添加到您要为其设置 TLS 协议版本的<VirtualHost>
指令中。例如,只启用TLSv1.3
协议:SSLProtocol -All TLSv1.3
SSLProtocol -All TLSv1.3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启
httpd
服务:systemctl restart httpd
# systemctl restart httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
使用以下命令来验证服务器是否支持
TLSv1.3
:openssl s_client -connect example.com:443 -tls1_3
# openssl s_client -connect example.com:443 -tls1_3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令来验证服务器是否不支持
TLSv1.2
:openssl s_client -connect example.com:443 -tls1_2
# openssl s_client -connect example.com:443 -tls1_2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果服务器不支持该协议,命令会返回一个错误:
140111600609088:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:ssl/record/rec_layer_s3.c:1543:SSL alert number 70
140111600609088:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:ssl/record/rec_layer_s3.c:1543:SSL alert number 70
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 可选:重复用于其他 TLS 协议版本的命令。