4
我想知道如何讓NginX(負載平衡器)在443接受流量並轉發到負載平衡的Web服務器節點上的端口443。如何不終止在NginX負載平衡器
我正在使用NginX作爲負載均衡器,其中SSL終止發生在NginX級別。然後nginx的發送未加密的流量到我的Web服務端口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上的流量,並在負載平衡的Web服務器節點上將它轉發給443。然後讓我的web服務器完成SSL工作。
最佳做法是在負載均衡器級別執行SSL卸載,但我想另行做。
謝謝。
你在問什麼叫做MITM攻擊:http://en.wikipedia.org/wiki/Man-in-the-middle_attack這正是SSL/TLS所能阻止的。 – VBart
同意。那麼這是否意味着,如果想要使用負載均衡器(任何負載均衡器本身,而不僅僅是NginX),他必須在負載均衡器級別配置SSL終止?我可能會特別談論[這個](http://security.stackexchange.com/a/43097/34084)回答它建議有後端SSL的地方。我的要求並不像PCI人士所要求的那麼難。我只是想了解整個概念。 – slayedbylucifer
如果你想使用像nginx這樣的第7層負載平衡器,那麼它需要取消加密連接才能訪問請求,並且你必須在nginx.conf中指定keys/certs。之後,可以在發送到後端之前再次加密(使用'proxy_pass https:// appserver')。您可以使用其中一種L4平衡器來平衡TLS在TCP層上的其他方式。 – VBart