Nginx + TLS 1.3 如何设置默认 AES_128_GCM? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nikoo
V2EX    问与答

Nginx + TLS 1.3 如何设置默认 AES_128_GCM?

  •  
  •   nikoo 2019-03-23 10:41:14 +08:00 4733 次点击
    这是一个创建于 2394 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前是:
    The connection to this site is encrypted and authenticated using TLS 1.3, X25519, and AES_256_GCM.

    nginx 配置为:
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ...

    想将 AES_128_GCM 作为 prefer server cipher 替代目前的 AES_256_GCM,应做怎样的修改?
    15 条回复    2019-04-09 10:50:55 +08:00
    mason961125
        1
    mason961125  
       2019-03-23 10:51:40 +08:00
    这些参数里最关键的 ssl_ciphers 你没贴...
    nikoo
        2
    nikoo  
    OP
       2019-03-23 10:55:43 +08:00
    @mason961125 ssl_ciphers 是 Let's Encrypt 默认的:

    ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS";

    奇怪的是,无论如何修改这个 ssl_ciphers 的值,甚至乱写:
    ssl_ciphers "1234567";
    都能通过 nginx -t 配置检测,也能启动 nginx,启动后仍然是 using TLS 1.3, X25519, and AES_256_GCM
    msg7086
        3
    msg7086  
       2019-03-23 11:18:11 +08:00   1
    如果是 Debian 系的话可以试试 SB Nginx,有补丁。

    补丁: https://g.x86.men/root/nginx-pika/commit/c157c72e85517742a26d4f7993957c47e6de139f
    安装: https://mirrors.xtom.com.hk/sb/nginx/

    然后在 ciphers 里加入 TLS_AES_128_GCM_SHA256 试试看。
    DesignerSkyline
        4
    DesignerSkyline  
       2019-03-23 11:18:43 +08:00   2
    TLS1.3 不支持自己修改 ciphers, 这个就算你不用 nginx 也是一样的。
    nikoo
        5
    nikoo  
    OP
       2019-03-23 11:23:06 +08:00
    @msg7086 @DesignerSkyline 谢谢,如果将
    ssl_prefer_server_ciphers on;
    改为
    ssl_prefer_srver_ciphers off;
    即按客户端偏好选择 ciphers 的话,用 Chrome 打开可以看到是想要的 using TLS 1.3, X25519, and AES_128_GCM

    另外问一下,如果设置 ssl_prefer_server_ciphers off; 有没有什么坑?
    msg7086
        6
    msg7086  
       2019-03-23 11:33:45 +08:00
    @nikoo 我选择按照服务器喜好。
    nikoo
        7
    nikoo  
    OP
       2019-03-23 11:37:28 +08:00
    @DesignerSkyline 请教大佬,TLS1.3 不支持自己修改 ciphers 怎么搜相关文档关键字?谢谢!
    nikoo
        8
    nikoo  
    OP
       2019-03-23 11:40:36 +08:00
    @msg7086 谢谢,是不是可以这样理解,同 Chrome 访问一个站其显示为 TLS 1.3 + AES_128_GCM
    那么他要不就是设了 ssl_prefer_server_ciphers off; 要不就是用了您刚贴的补丁魔改成了 SB Nginx ?
    正经 nginx 没法做到是吗?
    msg7086
        9
    msg7086  
       2019-03-23 11:45:01 +08:00   2
    @nikoo 什么叫正经的 Nginx ……

    官方的 Nginx 现在的确没有去支持选择 TLS 1.3 的 cipher,因为 TLS 1.3 用了另一个函数接口去选择 cipher (看我的补丁源码),而原来的接口只支持 TLS 1.2 以下的 cipher。所以要么改 Nginx,要么改 OpenSSL,都可以。官方以后也很有可能加代码去支持 TLS 1.3 的接口,只是现在还没有开始做。
    giuem
        10
    giuem  
       2019-03-23 11:47:49 +08:00 via iPhone   1
    nikoo
        11
    nikoo  
    OP
       2019-03-23 12:04:58 +08:00
    @msg7086 谢谢大佬,请问如果没有很大的连接安全需求,那么需要为了性能考虑去将 AES_256_GCM 改为 AES_128_GCM 吗?这两者性能差别大吗?(您在生产服用的 256 还是 128 ?)
    nikoo
        12
    nikoo  
    OP
       2019-03-23 12:10:30 +08:00
    @msg7086 因为我看
    https://www.cloudflare.com/
    https://www.mozilla.org/en-US/
    都是 TLS 1.3 + AES_128_GCM

    所以不知道生产环境用 AES_256_GCM 稳不稳,小鸡受不受得住
    isCyan
        13
    isCyan  
       2019-03-23 12:15:55 +08:00 via Android   1
    @nikoo 杞人忧天,256 位完全没有任何问题
    当然你不喜欢可以改成 128 位嘛
    msg7086
        14
    msg7086  
       2019-03-23 12:31:04 +08:00   1
    @nikoo 服务器一般是硬件指令集辅助运算吧,128 和 256 差距大概也就 15%这个级别,我觉得不必太过担心。
    suduo1987
        15
    suduo1987  
       2019-04-09 10:50:55 +08:00
    tls 1.3 的配置可以使用 openssl.cnf

    参考:
    https://www.ssllabs.com/ssltest/analyze.html?d=sduoxminty.cn
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5530 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 09:02 PVG 17:02 LAX 02:02 JFK 05:02
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86