我有一个使用节点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环境中运行,并且服务器上有一些防火墙。我不是处理防火墙和服务器的人,所以我对它们知之甚少,但我不知道这是否是造成这个问题的一个因素。
如果有人有任何建议,我们将不胜感激
答案 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);