AWS经典负载均衡器不保留TLS终止后的SNI信息。因此,为了获取SNI信息,可以在负载均衡器前面部署一个反向代理,并将SNI信息传递到代理服务器。
以下是一个简单的Nginx样本配置,通过将值传递到代理服务器的'X-Forwarded-Proto”头来传递SNI信息:
http {
upstream backend {
server myserver:8080;
}
server {
listen 443;
server_name mydomain.com;
ssl on;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://backend;
}
}
}
在这种情况下,Nginx将SNI信息作为'X-Forwarded-Proto”头传递给后端服务器。可以在后端应用程序中读取此头以获取SNI信息。
请注意,上述解决方法仅适用于AWS经典负载平衡器。对于应用程序负载平衡器(ALB)和网络负载平衡器(NLB),SNI信息可作为负载平衡器的目标组监听器的一部分传递。