首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

Nginx 的 TLS 1.3 到底应该怎么配置?

  •  
  •   ech0x · 34 天前 · 703 次点击
    这是一个创建于 34 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Nginx 版本:

    built with OpenSSL 1.1.1  11 Sep 2018
    TLS SNI support enabled
    configure arguments: --add-module=../ngx_brotli --with-openssl=../openssl --with-openssl-opt=enable-tls1_3 --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www
    

    配置文件

      ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    
      ssl_ciphers 'TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA
    256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-
    DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA38
    4:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-
    SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CB
    C3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
    

    不知道为什么还是不能启用 TLS 1.3

    15 回复  |  直到 2019-03-22 11:07:56 +08:00
        1
    msg7086   34 天前
    ssl_ciphers 去掉试过吗?
        2
    ech0x   34 天前
    @msg7086 #1 还是不行.....
        3
    msg7086   34 天前
    你如果用 Debian 或者 Ubuntu 的话可以试试 SB,可以看看到底是配置的问题还是编译的问题。
    https://mirrors.xtom.com.hk/sb/nginx/
        4
    ech0x   34 天前
    @msg7086 #3 好像还是不行.....SB 的 Nginx 没有 enable-tls1_3 ?
        5
    jlkm2010   34 天前
    最近用 caddy,感觉美滋滋
        6
    goodryb   34 天前
    cd nginx-1.15.6
    ./configure --prefix=/usr/local/nginx --add-module=../ngx_brotli --with-openssl=../openssl --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre=../pcre-8.42 --with-zlib=../zlib-1.2.11 --with-openssl-opt='enable-tls1_3'

    这是我的编译参数,能够正常启用
        7
    lhx2008   34 天前 via Android
    不会浏览器没开启 TLS1.3 吧
        8
    goodryb   34 天前


    可以去这里测试一下 https://www.ssllabs.com/ssltest/index.html
        9
    ech0x   34 天前 via iPhone
    @lhx2008
    @goodryb
    我测试了一下,应该不是浏览器的问题。
        10
    virusdefender   34 天前
        11
    tao1991123   34 天前
    试试这个吧
    https://nginxconfig.io/
        12
    Hardrain   34 天前   ♥ 1
    如果$OPENSSL_PATH/lib 不在 ld.so.conf 里,编译时加上 LDFLAGS='-Wl,-rpath=$OPENSSL_PATH/lib'
    否则编译时,ld 会找到自己编译的 OpenSSL 的动态库(libssl.solibcrypto.so)和 Header
    运行时还是调用系统自带的。

    ldd $NGINX_PATH/sbin/nginx 看看 nginx 链接到的动态库是不是 OpenSSL 1.1.1 的?
        13
    Hardrain   34 天前   ♥ 1
    此外,如不能指定 TLS 1.3 加密套件顺序,尝试打这个 patch https://github.com/Hardrain980/nginx-tls13-chacha20-patch 后编译

    这是 OpenSSL 用了一个新的函数来定义 TLS 1.3 加密套件导致的。
        14
    ech0x   34 天前
    @Hardrain #12 好像是这个问题,我看了一眼 libcrypto.so 链接到到还是系统的动态库。
        15
    hsie   33 天前
    假如网站打得开,估计是浏览器不支持,我以下的配置没问题。

    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers [TLS13+AESGCM+AES128|TLS13+AESGCM+AES256|TLS13+CHACHA20]:[EECDH+ECDSA+AESGCM+AES128|EECDH+ECDSA+CHACHA20]:EECDH+ECDSA+AESGCM+AES256:EECDH+ECDSA+AES128+SHA:EECDH+ECDSA+AES256+SHA:[EECDH+aRSA+AESGCM+AES128|EECDH+aRSA+CHACHA20]:EECDH+aRSA+AESGCM+AES256:EECDH+aRSA+AES128+SHA:EECDH+aRSA+AES256+SHA:RSA+AES128+SHA:RSA+AES256+SHA:RSA+3DES;
    ssl_prefer_server_ciphers on;
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1045 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 18:19 · PVG 02:19 · LAX 11:19 · JFK 14:19
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1