2016-12-07 7 views
1

Ich habe einige Probleme mit meiner SSL-Konfiguration auf einer Client-Anwendung. Die Anwendung wird von Nginx auf einer AWS EC2-Instanz bereitgestellt. Ich habe einen AWS Load Balancer vor diesem Server. Mein SSL-Zertifikat ist auf dem Load Balancer installiert und der gesamte Datenverkehr wird am entsprechenden Port an Nginx weitergeleitet.SSL auf Load Balanced Nginx Server

Wenn ich zu einer der Webseiten navigiere, die von Nginx bedient werden, bekomme ich einen SSL-Zertifikatfehler in meinem Browser.

Wenn ich den folgenden OpenSSL-Befehl ausführen ich einen Fehler ...

openssl s_client -debug -connect example.com:443 

Verify return code: 21 (unable to verify the first certificate) 

Und wenn ich die Domain auf Digicert überprüfen ich ...

SSL Certificate is not trusted 

Ich benutze die gleiche Art Setup für andere Projekte (SSL on LB) und es funktioniert gut. Es ist nur meine Nginx-Instanz, die mir Probleme bereitet. Gibt es eine Konfiguration, die ich mit Nginx vermissen könnte?

Danke!

+0

Vermissen Sie vielleicht einige Zwischenzertifikate? –

+0

Hallo, das ist, wo mein Wissen über SSL ein wenig verschwommen wird. Ich kenne Zwischenzertifikate, aber wohin sollen sie gehen? Auf der LB oder ist das etwas für nginx? Vielen Dank! – fatlog

Antwort

1

Die Zertifizierungsstelle stellt Ihnen ein signiertes Zertifikat und (null oder mehr) Zwischenzertifikate zur Verfügung. Sie müssen mit demjenigen, der Ihr Zertifikat signiert hat, überprüfen, welche (wenn überhaupt) Zwischenzertifikate mit Ihrem signierten Zertifikat gebündelt werden müssen.

In der nginx Konfigurationsdatei, die ssl_certificate Direktive gibt die Datei zusammen, zuerst mit dem signierten Zertifikat erscheinen verketteten Ihr signiertes Zertifikat und alle Zwischenzertifikate enthalten. Dies ist eine Textdatei und soll einen oder mehr Abschnitte zwischen Linienmarkierungen enthält:

-----BEGIN CERTIFICATE----- 
-----END CERTIFICATE----- 

Siehe this document für mehr.

+0

Also muss ich auch die Zertifikate auf Nginx sowie den Load Balancer installieren? Derzeit habe ich nur das Zertifikat auf dem Load Balancer installiert – fatlog

+0

Entschuldigung, nein, die Zertifikate müssen nur bei dem Prozess installiert werden, der die SSL-Verbindung beendet. Wenn der Load Balancer nur über HTTP an "nginx" anmeldet, benötigt 'nginx' die Zertifikate nicht. Entschuldigung für die Hinweise auf "nginx". –

+0

Kein Problem! Also sollte ich dann Zwischenzertifikate auf dem Load Balancer installieren? – fatlog