节点js tls1.2和身份验证

时间:2012-11-17 20:53:37

标签: node.js

https服务器是否有任何示例代码使用SSLCertificateFileSSLCertificateKeyFile使用tls 1.2进行身份验证?

任何指向相关样本的指针都将受到高度赞赏。

ssllabs表示它易受DoS攻击,因为它支持客户端启动的重新协商

我无法让fusker创建一个ssl服务器

var https = require('https');
var fs = require('fs');
var fusker = require('fusker');

//var server = fusker.https.createServer(443);
//var io = fusker.socket.listen(server);

var options = {
key: fs.readFileSync('/etc/ssl/server.key'),
cert: fs.readFileSync('/etc/ssl/mathpdq.crt'),
ciphers: 'RC4-SHA:RC4:ECDHE-RSA-AES256-SHA:AES256-SHA:HIGH:!MD5:!aNULL:!EDH:!AESGCM',
honorCipherOrder: true
};

https.createServer(options, function (req, res) {
res.writeHead(200);
res.end("hello world\n");
}).listen(443);

1 个答案:

答案 0 :(得分:6)

创建https监听器很简单,但目前尚不清楚是否存在使用TLS 1.2创建监听器的具体问题。最近的节点针对足够新的OpenSSL版本构建,以获得1.2支持。

然后你需要密码和honorCipherOrder选项,如下所述:http://nodejs.org/api/tls.html

e.g

var https = require('https');
var fs = require('fs');

var options = {
    key: fs.readFileSync('my.key'),
    cert: fs.readFileSync('my.crt'),
    ciphers: 'ECDHE-RSA-AES256-SHA:AES256-SHA:RC4-SHA:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM',
    honorCipherOrder: true
};

var server = https.createServer(options, function (req, res) {
    ...});

server.listen(443);