V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
lhbc
V2EX  ›  NGINX

nginx 1.11.0 支持多证书了

  •  
  •   lhbc · 2016-05-25 22:04:36 +08:00 · 4129 次点击
    这是一个创建于 2275 天前的主题,其中的信息可能已经有所发展或是发生改变。

    *) Feature: the "ssl_certificate" and "ssl_certificate_key" directives can be specified multiple times to load certificates of different types (for example, RSA and ECDSA).

    一大堆 Feature http://nginx.org/en/CHANGES

    已成功部署了两个证书,不过 PC 版的 Chrome 并没有选择 ECDSA 证书,只有手机版采用了 CHACHA20 才使用 ECDSA ,可能是 ssl_ciphers 的关系

    第 1 条附言  ·  2016-05-25 22:52:24 +08:00

    我原来采用的ssl_ciphers配置是CloudFlare推荐的配置

    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    

    建议修改为

    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+ECDSA+AES256:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    

    其实就是把 EECDH+ECDSA 放在CHACHA20的后面,这样nginx和浏览器协商加密的时候就会优先采用 ECDSA

    第 2 条附言  ·  2016-05-25 23:43:19 +08:00

    上面的ssl_ciphers,在IE11、EDGE等浏览器下,会优先选择 AES_256_GCM_SHA384

    为了避免不必要的开销(AES_128_GCM_SHA256已经足够安全),最后再简单粗暴地调整下

    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:EECDH+ECDSA+AESGCM:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    

    这样所有浏览器默认的配置,都不会选择 AES256,节省计算资源

    20 条回复    2016-05-26 13:41:55 +08:00
    qgy18
        1
    qgy18  
       2016-05-25 22:06:42 +08:00 via iPhone
    貌似 nginx-ct 还没法支持两个证书。
    JimmyZhou
        2
    JimmyZhou  
       2016-05-25 22:37:07 +08:00
    看题目我还以为 SNI, 看了才知道是 RSA 和 ECC 双证书。。
    wql
        3
    wql  
       2016-05-25 23:13:31 +08:00 via iPad
    @qgy18 上双证书不上 sct
    chromee
        4
    chromee  
       2016-05-26 00:16:41 +08:00 via Android
    @qgy18 上内嵌透明度的证书不就行了
    alect
        5
    alect  
       2016-05-26 00:18:39 +08:00
    Apache 下的双证书,/t/259478
    alect
        6
    alect  
       2016-05-26 00:18:57 +08:00
    fcicq
        7
    fcicq  
       2016-05-26 08:54:10 +08:00
    关于附言 2, 现代处理器有 AES 指令集, 服务器方面偏好 AES 会更好. 但这个偏好不牵扯客户端的解密性能, 比如在移动处理器上 chacha 系更快也是事实.
    realpg
        8
    realpg  
       2016-05-26 08:57:20 +08:00
    @fcicq
    其实这个选择非常不合理。
    有 AES 指令集的 CPU 至少也是 i3 了,性能比较强,就算不让他用 AES 指令集,单纯用 CPU 传统计算也不在话下
    反而是没有 AES 指令集的,大多是性能较差的老 CPU ,跑 AES 可就慢死了
    fcicq
        9
    fcicq  
       2016-05-26 09:09:32 +08:00
    @realpg 先考虑服务器端. 服务器端多数有 AESNI 所以必然比 chacha 快. 移动端占大比例的话再考虑 chacha 优先. 能指望旧机器装现代浏览器?
    realpg
        10
    realpg  
       2016-05-26 09:12:20 +08:00
    @fcicq
    你根本不懂用户。
    我现在就是一个不支持 AES 指令集的电脑在上网,而且是我的最常用的一台电脑。
    不要看不起奔腾 CPU 。
    fcicq
        11
    fcicq  
       2016-05-26 09:27:18 +08:00
    @realpg 确实不懂啊. 没办法... 只能说有些遗憾. SSE2 有 15 年历史了吧. 因为有了 AESNI 所以很多实现不愿意维护 SSE2 版的 AES 了, 而对没有指令集支持的加密算法来说 SSE2 是保证基本性能的基础.
    somnus
        12
    somnus  
       2016-05-26 10:42:13 +08:00
    版本迭代的真快...
    lhbc
        13
    lhbc  
    OP
       2016-05-26 11:14:55 +08:00 via Android
    @realpg
    @fcicq
    附言 2 的 ciphers ,优先级是
    chacha20, ECDSA AES GCM, RSA AES GCM, RSA AES CBC

    在不支持 AES-NI 的 x86 CPU ,浏览器是 Chrome 32+的时候,会优先选择 chacha20
    基本还是以客户端优先
    zsen
        14
    zsen  
       2016-05-26 11:25:22 +08:00
    外阁楼,@lhbc 是不是原来喜悦村的那个谁?头像有点眼熟 😄
    lhbc
        15
    lhbc  
    OP
       2016-05-26 11:41:30 +08:00
    @zsen 喜悦村 是啥……
    BSD 小恶魔的头像,太多人用了……
    zsen
        16
    zsen  
       2016-05-26 12:21:28 +08:00
    @lhbc 哦,误会了😁
    wbsdty331
        17
    wbsdty331  
       2016-05-26 12:28:38 +08:00 via Android
    @lhbc 直接抛弃 AES-NI 吧
    lhbc
        18
    lhbc  
    OP
       2016-05-26 12:40:56 +08:00
    @wbsdty331 没明白你表达的什么观点……
    typcn
        19
    typcn  
       2016-05-26 13:22:34 +08:00
    @lhbc 客户端的开销算啥。。。。服务器同时要处理上百上千上万人的请求,而客户端只需要建一条连接。

    就在 5 年前的没有 AES 加速的手机上,一个线程也起码有个 30MB/s ,你的网速能达到这么快么?
    lhbc
        20
    lhbc  
    OP
       2016-05-26 13:41:55 +08:00
    @typcn chacha20, 随便一台服务器都能跑 几百 MB/s
    对称加密没多少开销,当然是适配客户端优先
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3477 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 05:21 · PVG 13:21 · LAX 22:21 · JFK 01:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.