首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用chacha20-poly1305节点

使用chacha20-poly1305节点
EN

Stack Overflow用户
提问于 2018-06-24 07:08:54
回答 1查看 760关注 0票数 5

较早版本的节点不支持 chacha20-poly1305,但截至10.0.0版支持OpenSSL1.1.0,其中包括chacha。

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

但是,当与支持chacha的浏览器连接时,向https.createServer()http2.createServer()传递只包含chacha的ciphers列表会导致无共享密码错误。密码的示例列表:

代码语言:javascript
复制
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);

它是一个带有节点的错误还是其他一些我忽略了的配置选项?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-28 01:35:30

作为mscdex 解释 on GitHub,我试图使用的字符串格式是错误的。如果将字符串从字符串转换为大写,tls.getCiphers()将返回有效字符串。

例如,以下内容:

代码语言:javascript
复制
tls.getCiphers().filter((str) => str.includes('chacha')).map((str) => str.toUpperCase())

把这个还给我:

代码语言:javascript
复制
[ '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' ]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51007706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档