Node.js 设置多个HTTPS服务器在节点中的同一端口上侦听
通过不指定协议,以下块将导致使用TLS 1.2的HTTPS服务器:Node.js 设置多个HTTPS服务器在节点中的同一端口上侦听,node.js,express,https,node-http-proxy,Node.js,Express,Https,Node Http Proxy,通过不指定协议,以下块将导致使用TLS 1.2的HTTPS服务器: var options = { key: fs.readFileSync("security/server.key"), cert: fs.readFileSync("security/server.crt") }; https.createServer(options, app).listen(443); 但是,我的一个端点需要充当Fitbit API的订户端点,这需要TLS 1.0。为此,我需要将secur
var options = {
key: fs.readFileSync("security/server.key"),
cert: fs.readFileSync("security/server.crt")
};
https.createServer(options, app).listen(443);
但是,我的一个端点需要充当Fitbit API的订户端点,这需要TLS 1.0。为此,我需要将secureProtocol
设置为TLSv1\u方法
var options = {
key: fs.readFileSync("security/server.key"),
cert: fs.readFileSync("security/server.crt"),
secureProtocol: "TLSv1_method" // Fitbit subscription API requires TLS 1.0
};
https.createServer(options, app).listen(443);
对一个端点使用TLS 1.0,对所有其他端点使用TLS 1.2的最佳方式是什么?答案可能在模块中,但我很难将文档应用到我的用例中。请注意,我使用不同的子域来区分流量。如果选项中未定义
secureProtocol
,则默认情况下,节点将创建一个https服务器,该服务器接受TLS 1.0、TLS 1.1和TLS 1.2上的连接
示例服务器:
const https = require('https');
const fs = require('fs');
const options = {
key: fs.readFileSync('default-key.pem'),
cert: fs.readFileSync('default-cert.pem')
};
https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
您可以使用curl在命令行中测试这一点:
SSLv3测试(将失败,默认禁用):
TLSv1的测试(将起作用):
TLSv1.1的测试(将起作用):
TLSv1.2的测试(将起作用):
在node.js版本5.3.0和5.5.0(最新版本)上测试。如果选项中未定义
secureProtocol
,则默认情况下,node将创建一个https服务器,该服务器接受TLS 1.0、TLS 1.1和TLS 1.2上的连接
示例服务器:
const https = require('https');
const fs = require('fs');
const options = {
key: fs.readFileSync('default-key.pem'),
cert: fs.readFileSync('default-cert.pem')
};
https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
您可以使用curl在命令行中测试这一点:
SSLv3测试(将失败,默认禁用):
TLSv1的测试(将起作用):
TLSv1.1的测试(将起作用):
TLSv1.2的测试(将起作用):
在node.js版本5.3.0和5.5.0(最新版本)上测试。Ah…我没有意识到默认情况下支持所有三个版本。谢谢啊…我没有意识到默认情况下支持所有三个版本。谢谢
curl --tlsv1.0 https://localhost:8000 -k
curl --tlsv1.1 https://localhost:8000 -k
curl --tlsv1.2 https://localhost:8000 -k