我正在使用一个使用nodejs的https服务器。出于安全原因,我必须更改某些ssl参数。更具体地说,我必须设置/禁用“客户端重新协商限制”。
根据标准文档here,我必须将tls.CLIENT_RENEG_LIMIT设置或更改为我的值。
由于我使用的是https模块,因此可以访问https服务器。我的问题是如何从https服务器获取tls对象,以便我可以设置值。
我了解在创建如下所示的https服务器时可以设置一些选项。
re.findall()
但是,如果要为tls.CLIENT_RENEG_LIMIT或tls.CLIENT_RENEG_WINDOW等添加值,我不确定要确切设置什么。我假设会有某种方式可以获取可以设置这些值的tls句柄。 / p>
这里有帮助吗??
答案 0 :(得分:1)
您无法从https服务器对象获取TLS
对象,但是可以使用内置模块tls
来设置所需的选项。创建https
服务器之前,可以将值设置为:
const tls = require('tls')
tls.CLIENT_RENEG_LIMIT = ' required value'
const options = {
key: fs.readFileSync('app-key.pem'),
cert: fs.readFileSync('app-cert.pem'),
secureOptions: constants.SSL_OP_NO_SSLV2 | ...,
ciphers: [...]
}
const server = https.createServer(options,function(req,res){
res.writeHead(200);
res.end('hello world\n');
})
server.listen(8080);
TLSv1.3不支持重新协商。
https
模块取决于tls
,因此,您设置为tls
的任何有效值都将适用于https
您不能通过
CLIENT_RENEG_LIMIT
作为https
选项,因为options <Object>
接受来自tls.createServer()
,tls.createSecureContext()
和http.createServer()
。