我正在尝试配置AWS Application Load Balancer(相对于传统负载均衡器)以将流量分配到我的EC2 Web服务器.出于合规性原因,我需要为我的应用程序端到端SSL/HTTPS加密.
在我看来,确保在客户端和Web服务器之间完全加密流量的最简单方法是终止Web服务器上的HTTPS连接.
我的第一个问题:是否可以通过AWS Application Load Balancer以这种方式将HTTPS流量传递到负载均衡器后面的Web服务器?
根据我从AWS文档中收集的信息,可以使用经典负载均衡器(通过TCP传递)以这种方式传递流量.但是,Application Load Balancer看起来好像要终止HTTPS连接本身,然后执行以下操作之一:
我的第二个问题:对文档的理解是否正确?
我正在使用客户端证书从节点应用程序进行HTTPS连接:
var options = {
hostname: 'https://my-server.com',
port: 443,
path: '/',
method: 'GET',
key: fs.readFileSync('client1-key.pem'),
cert: fs.readFileSync('client1-crt.pem'),
ca: fs.readFileSync('ca-crt.pem') };
var req = https.request(options, res => {
[...]
});
Run Code Online (Sandbox Code Playgroud)
一切正常,但我想添加代码以确保只允许TLS 1.2连接.我找不到任何方法在https.agent选项或其他地方配置它.是否可以配置它,或者我是否必须建立连接然后查询协议版本,例如:
res.socket.getProtocol() === 'TLSv1.2'
如果协议不满意,请中止连接?