NginX (로드 밸런서)가 443에서 트래픽을 허용하고로드 균형 조정 된 웹 서버 노드에서 포트 443으로 전달하는 방법을 알고 싶습니다.NginX로드 밸런터에서 SSL을 종료하지 않는 방법
SSL 종료가 NginX 수준에서 발생하는로드 균형 조정기로 NginX를 사용하고 있습니다. 내 웹 포트에서 역할에 그리고 Nginx에 암호화되지 않은 트래픽을 전송 80
이 내 현재 ngnx 구성입니다 : 내가 겪었
upstream appserver {
server 10.0.1.132;
server 10.0.1.243;
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/nginx/cert.pem;
ssl_certificate_key /etc/nginx/cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location/{
proxy_pass http://appserver;
}
}
: 내가 원하는 경우 Nginx load balance with upstream SSL
내 실제 문제이며, NginX가 443의 트래픽을 수신하면 nignx에서 ssl 종료를 구성해야합니다. 그렇지 않으면 nginx 서비스가 시작되지 않고 누락 된 SSL 인증서/키에 대해 불평 할 것입니다.
요약하면 Nginx가 443의 트래픽을 받아 들여로드 밸런싱 된 웹 서버 노드에서 443으로 전달하기를 바랍니다. 그런 다음 내 웹 서버가 SSL 작업을하도록하십시오.
로드 밸런서 수준에서 SSL 오프 로딩을 수행하는 것이 가장 좋습니다.하지만 달리 수행하고 싶습니다.
감사합니다.
당신이 묻는 것은 MITM 공격이라고합니다 : http://en.wikipedia.org/wiki/Man-in-the-middle_attack 바로 SSL/TLS가 방지하는 것입니다. – VBart
동의 함. 로드 밸런서 (NginX뿐 아니라로드 밸런서 자체)를 사용하려면로드 밸런서 수준에서 SSL 종료를 구성해야합니다. 나는 구체적으로 [this] (http://security.stackexchange.com/a/43097/34084) 답변에 대해 백엔드 SSL을 제안한 곳을 대답했다. PCI 요구 사항만큼이나 어려운 것은 아닙니다. 나는 단지 전체 개념을 이해하려고 노력하고있다. – slayedbylucifer
nginx와 같은 계층 7로드 밸런서를 사용하려면 요청에 액세스하기 위해 연결의 암호화를 해제해야하며 nginx.conf에서 키/인증서를 지정해야합니다. 그런 다음 백엔드로 보내기 전에 다시 암호화 할 수 있습니다 ('proxy_pass https : // appserver' 사용). 다른 방법으로 L4 밸런서 중 하나를 사용하여 TCP 레이어에서 TLS의 균형을 조정할 수 있습니다. – VBart