node.js - 如何在 nodejs 中禁用 SSL 3.0 和 TLS 1.0

标签 node.js ssl

我在 Ubuntu 中使用 nodejs。我想同时禁用 SSL 3.0 和 TLS v1.0。

这是我的代码

var constants = require('constants')
  , https = require('https')
  , path = require('path')
  , tls = require('tls')
  , fs = require('fs');
var sslOptions = {
  key: fs.readFileSync('/etc/ssl/private/private.key'),
  secureProtocol: 'SSLv23_server_method',
   secureOptions: constants.SSL_OP_NO_SSLv3,
    secureOptions: constants.SSL_OP_NO_TLSv1,
  cert: fs.readFileSync('/etc/ssl/certs/STAR_mycert.crt'),
  ca: [
            fs.readFileSync('/etc/ssl/certs/AddTrustExternalCARoot_1.crt'),
            fs.readFileSync('/etc/ssl/certs/AddTrustExternalCARoot_2.crt'),
            fs.readFileSync('/etc/ssl/certs/AddTrustExternalCARoot_3.crt')
        ],
  //ca: fs.readFileSync('/etc/ssl/certs/AddTrustExternalCARoot.crt'),
  requestCert: false,
  rejectUnauthorized: false
};

现在,当我在 digicert 上测试我的网站时,我遇到了以下问题

enter image description here

知道怎么做吗?

最佳答案

我对 node.js 了解不多,但我认为你最后一个 secureOptions 只是覆盖了第一个,因为你不能在字典中多次使用相同的 key 。由于底层 TLS 堆栈 (OpenSSL) 要求选项按位组合或尝试以下操作:

secureOptions: constants.SSL_OP_NO_SSLv3 | constants.SSL_OP_NO_TLSv1,

关于node.js - 如何在 nodejs 中禁用 SSL 3.0 和 TLS 1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40434934/

相关文章:

node.js - Stormpath 集成,ExpressJS 'Stormpath 401Authentication with Vaild API Key is required'

javascript - 在javascript中导出默认值

docker - 将自签名 SSL 证书用于部署镜像

python - SSL:来自 Ubuntu 16.0.4 中的 Python pip 的 CERTIFICATE_VERIFY_FAILED 错误

go - 未能在 key 中找到任何 PEM 数据

node.js - app.post的第一个字符串参数有什么作用?

multithreading - 如何让 NodeJs 使用更多的 CPU 核心或多线程而不是单线程

node.js - Node.js/Mongoose 上的 "VersionError: No matching document found"错误

SSL 客户端证书认证

ssl - 其中 X509 StoreName 是指存储在 Windows10 中受信任的根证书颁发机构下的证书