2014-02-28 14 views
8

Ich habe eine Play 2.1.x Anwendung, die sich selbst mit JKS signiert. Es ist up, läuft und verfügbar unter domain.com:9443, ich muss es mit nginx Proxy, da es mehr Anwendungen auf dem gleichen Rechner sein wird, (daher kann es nicht nur auf Port 443 laufen) Ich habe die Nginx-Konfiguration in hoffen, dass proxy_pass mit https mir nur ProxyWie kann ich SSL-Backend ohne Angabe von Zertifikatsdateien verwenden?

upstream backend-secure { 
    server 0.0.0.0:9443; 
} 

server { 
     listen 443 ssl; 
     server_name domain.com; 

     proxy_redirect   off; 
     proxy_set_header  Host   $host; 
     proxy_set_header  X-Real-IP  $remote_addr; 
     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 


     location/{ 
       proxy_pass https://backend-secure; 
     } 

} 

Leider nur wie in nginx/error.log einzuloggen bekomme ich bei dem Versuch, https://domain.com in Browser zu öffnen, es zu Client ermöglicht:

keine " ssl_certificate“im Server lauscht auf SSL-Port definiert, während SSL-Handshake, Auftraggeber: 123.123.123.123, Server: 0.0.0.0:443

Gibt es eine Möglichkeit, es zu machen, arbeitet oder nur Option ist mit gemeinsamem Weg für nginx SSL + mit http Backend?

Edit: Es ist EV, Multi-Domain-Zertifikat, wenn es darauf ankommt.

Antwort

1

Die einzige Option für Proxy ist, das Zertifikat innerhalb von Nginx zu haben. Eine andere Option wäre, die Verbindung nur außerhalb von ngnix weiterzuleiten, aber dann werden Sie kein X-Real-IP, X-Forwarded-For usw. erhalten.

+0

Zweite Option ist nicht akzeptabel (echte IP ist in der App erforderlich) Ich wähle zuerst, aber zusätzliche Frage: meine App sollte sich mit 'jks' unterschreiben und dann sollte ich' proxy_pass' als 'https', richtig einstellen ? – biesior

+1

Es gibt zwei Möglichkeiten: Sie können den Proxy https mit dem Client sprechen lassen und ihn als http an den Server weiterleiten (innerhalb des vertrauenswürdigen Netzwerks) oder Sie können auch die Weiterleitung an den Server als https durchführen. Der letztere Fall benötigt mehr Ressourcen, da die Daten vom Proxy erneut verschlüsselt und vom Server entschlüsselt werden müssen und langsamer werden, da SSL-Verbindungsaufbau mehr Handshakes erfordert, aber Sie können ihn über nicht vertrauenswürdige Netzwerke verwenden. –

+0

@SteffenUllrich Wie würdest du das letztere konfigurieren? Einfach "proxy_pass https: // ..' funktioniert nicht (d. H. Wenn ich ein ungültiges Zertifikat verwende, funktioniert es immer noch gut). nginx Version 1.6.2 .. – Joost

Verwandte Themen