MST

星途 面试题库

面试题:安全认证:Nginx配置TLS版本的基础问题

在Nginx中,配置支持最新TLS版本时,需要修改哪个主要配置文件?请简述在该文件中配置TLS版本的基础指令及其作用。
41.5万 热度难度
后端开发安全认证

知识考点

AI 面试

面试题答案

一键面试
  1. 主要配置文件: 通常需要修改Nginx的主配置文件,一般是nginx.conf ,也可能在/etc/nginx/sites - available/目录下的具体站点配置文件(通过软链接到/etc/nginx/sites - enabled/目录生效)。
  2. 配置TLS版本的基础指令及其作用
    • ssl_protocols

      • 作用:用于指定Nginx服务器支持的TLS协议版本。例如,要支持最新的TLS版本(截至2024年7月,为TLS 1.3),可以使用如下配置:
        ssl_protocols TLSv1.3;
        
        这将只允许客户端使用TLS 1.3协议与服务器进行通信。如果希望同时支持多个版本(如TLS 1.2和TLS 1.3),可以写成:
        ssl_protocols TLSv1.2 TLSv1.3;
        
        这样就允许客户端根据自身能力选择使用TLS 1.2或TLS 1.3协议与服务器建立安全连接。较低版本(如SSLv2、SSLv3和TLSv1.0、TLSv1.1)由于存在安全风险,不建议开启。
    • ssl_ciphers

      • 作用:定义服务器支持的密码套件。密码套件是在TLS握手过程中,客户端和服务器协商用于加密通信的算法组合。为了配合TLS 1.3使用,建议使用一组经过优化的密码套件,例如:
        ssl_ciphers HIGH:!aNULL:!MD5;
        
        这里HIGH表示使用高强度的密码套件,!aNULL表示排除匿名认证的密码套件,!MD5表示排除使用MD5摘要算法的密码套件,因为MD5存在安全弱点。对于TLS 1.3,Nginx会自动选择合适的密码套件,但这个指令在与旧版本TLS配合使用时仍很重要。
    • ssl_prefer_server_ciphers

      • 作用:当设置为on时,服务器在协商密码套件时优先使用自己的密码套件顺序。例如:
        ssl_prefer_server_ciphers on;
        
        这样服务器在与客户端协商密码套件时,会按照ssl_ciphers指令定义的顺序来选择,而不是让客户端优先选择,有助于确保服务器使用更安全、更符合自身配置的密码套件。