如何使用nodejs

时间:2015-07-03 07:27:57

标签: node.js ssl

我想禁用TLS v1.0并仅使用TLS 1.1及更高版本。

通过nodejs,我使用https模块,如何设置https选项?

我已阅读过api doc node api tls,但我仍然不知道如何设置它。

我认为这取决于secureProtocolcipher,但我不知道如何设置值。

我的节点版本是0.10.36,openssl版本是0.9.8j。

4 个答案:

答案 0 :(得分:6)

不应再使用TLS 1.0。这可以在node.js中禁用TLS 1.0:

https.createServer({
    secureOptions: require('constants').SSL_OP_NO_TLSv1,
    pfx: fs.readFileSync(path.resolve(pathToCert))
}, app).listen(443);

您可以使用此工具验证这一点:ssllabs

答案 1 :(得分:3)

常量模块的使用没有记录。禁用TLS v1.0的更好方法是使用加密模块中的常量。请参阅Node.js网站上的documentation以供参考。

然后解决方案如下:

const { constants } = require('crypto')
https.createServer({
    secureOptions: constants.SSL_OP_NO_TLSv1,
    pfx: fs.readFileSync(path.resolve(pathToCert))
}, app).listen(443)

答案 2 :(得分:2)

Marco的解决方案对我有用,但是由于TLS 1.1也被认为是一个漏洞,因此最好同时禁用两者并使用TLS 1.2

oauth2_support(new branch)

答案 3 :(得分:1)

如果任何人使用MEANjs

,这将有所帮助

使用

secureProtocol: 'TLSv1_2_server_method',

而不是

secureProtocol: 'TLSv1_method',

文件位置config / lib / socket.io.js

无问题地工作。enter image description here