亚马逊ELB可以破坏双向TLS身份验证吗



我有一个服务在AWS Fargate上的ELB后面运行,作为一个docker容器,其中有nginx,位于443端口(https(。

我已经将客户端证书添加到我的nginx.conf中:

ssl_verify_client on;
ssl_verify_depth 2;
ssl_client_certificate "/etc/pki/nginx/clientcert.pem";

我测试了本地和部署在AWS Fargate上的docker容器。

openssl s_client -connect localhost:8443 -state -debug >local.log 2>&1
openssl s_client -connect my.aws.site.net:443 -state -debug >fargate.log 2>&1

当我在自己的机器上运行docker容器时,我看到它请求证书,但在Fargate上没有。

现在,在Fargate上,我和我的docker容器之间有一个弹性负载均衡器(ELB(。这个ELB用自己的证书交换证书。实际上,ELB从我的容器中读取HTTPS响应,对其进行解密,然后用它自己的公共证书对其进行重新加密(这称为TLS终止吗?(。我想知道ELB是否也有可能清除任何客户端证书请求?

编辑:也许这是相关的-AWS EC2应用程序负载均衡器+双向SSL?

我认为如果您使用ALB,将会终止SSL。但是,如果您不希望SSL在负载平衡器上终止,而是在NGINX服务器上终止,您可以使用NLB,我相信它不会终止SSL。

经过更多的研究,我确信它确实破坏了mTLS,只是因为它终止了TLS连接,所以我们在客户端和后端服务器之间并没有真正的TLS连接。

我们有两个独立的TLS连接——一个在客户端和ELB之间,另一个在ELB和服务器之间。

最新更新