代码之家  ›  专栏  ›  技术社区  ›  bjb568 Ispirer SQLWays Migrations

使用带有节点的chacha20-poly1305

  •  5
  • bjb568 Ispirer SQLWays Migrations  · 技术社区  · 8 年前

    旧版本的节点 did not support Chacha20-Poly1305,但是 as of version 10.0.0 ,节点支持openssl 1.1.0,其中包括chacha。

    • require('tls').getCiphers() 包括查查。
    • $ openssl ciphers 包括查查。

    不过是过眼云烟 https.createServer() http2.createServer() ciphers 列表中只有chacha导致 没有共享密码 连接到支持chacha的浏览器时出错。密码的示例列表:

    https.createServer({
        // ...
        'ciphers': [
            'TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256',
            'TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256',
            'TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256',
            'TLS_PSK_WITH_CHACHA20_POLY1305_SHA256',
            'TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256',
            'TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256',
            'TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256'
        ].join(':')
    }, someFunction).listen(443);
    

    是node的bug还是我忽略的其他配置选项?

    1 回复  |  直到 7 年前
        1
  •  0
  •   bjb568 Ispirer SQLWays Migrations    7 年前

    作为mscdex explained 在github上,我试图使用的字符串格式错误。 tls.getCiphers() 如果将字符串从大写转换为大写,则返回有效字符串。

    例如,以下内容:

    tls.getCiphers().filter((str) => str.includes('chacha')).map((str) => str.toUpperCase())
    

    为我返回这个:

    [ 'DHE-PSK-CHACHA20-POLY1305',
      'DHE-RSA-CHACHA20-POLY1305',
      'ECDHE-ECDSA-CHACHA20-POLY1305',
      'ECDHE-PSK-CHACHA20-POLY1305',
      'ECDHE-RSA-CHACHA20-POLY1305',
      'PSK-CHACHA20-POLY1305',
      'RSA-PSK-CHACHA20-POLY1305' ]
    
    推荐文章