节点https服务器secureOptions无法正常工作

时间:2018-03-08 02:24:04

标签: node.js http ssl

我有一个使用节点v.6的React节点应用程序,一切正常;但是我现在试图在https服务器上禁止使用TLS1.0,但是我遇到了问题。该应用程序使用https.createServer在端口443上通过https运行应用程序。这一切都正常,我们有ssl正常使用该应用程序。

问题是当我添加我的secureOptions来配置TSL时似乎没有任何改变。我尝试了许多不同的方法,但每次在网站上运行扫描时,我都会得到相同的结果。所以我不知道我的代码是错还是有其他的东西在起作用我不知道。

目前这是我的代码看起来我认为是正确的,我在网上研究过(我也尝试过没有密钥和证书选项来完全模仿我看到的例子)。

const options = {
  key: fs.readFileSync("./keys/example-key.pem"),
  cert: fs.readFileSync("./keys/example-cert.pem"),
  secureOptions: constants.SSL_OP_NO_TLSv1,
  pfx: fs.readFileSync(path.resolve("./keys/example.pfx")),
  passphrase: PASSPHRASE
};

console.log('Run on https');
https.createServer(options, app).listen(443);

据我所知,这是我需要的,以防止TSL1.0,但就像我说我在重新扫描我的网站时完全没有变化。

另外需要注意的是,此应用程序在IIS环境中运行,并且服务器上有一些防火墙。我不是处理防火墙和服务器的人,所以我对它们知之甚少,但我不知道这是否是造成这个问题的一个因素。

如果有人有任何建议,我们将不胜感激

仅供参考,这就是我的扫描效果 enter image description here

1 个答案:

答案 0 :(得分:0)

尝试以下操作。

const { constants } = require('crypto')

https.createServer({
  key: fs.readFileSync("./keys/example-key.pem"),
  cert: fs.readFileSync("./keys/example-cert.pem"),
  secureOptions: constants.SSL_OP_NO_TLSv1 | constants.SSL_OP_NO_TLSv1_1
  pfx: fs.readFileSync(path.resolve("./keys/example.pfx")),
  passphrase: PASSPHRASE
};

console.log('Run on https');
https.createServer(options, app).listen(443);