如何禁用nodejs中的SSL 3.0和TLS 1.0

我在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上testing我的网站时,我遇到了以下问题

在这里输入图像说明

任何想法如何做到这一点?

我不太了解node.js,但是我认为你最后一个secureOptions只是覆盖第一个,因为你不能在字典中多次使用相同的密钥。 由于基础TLS堆栈(OpenSSL)要求将选项与按位组合,或者尝试以下代码:

 secureOptions: constants.SSL_OP_NO_SSLv3 | constants.SSL_OP_NO_TLSv1,