fragen stichworte

AWS Elastic Beanstalk + Node JS + HTTPS = Verbindung abgelehnt

Ich habe eine JS-Anwendung für Knoten in AWS implementiert, die Elastic Beanstalk mit einer einzelnen Instanz verwendet. Es funktioniert gut mit HTTP, aber ich habe Probleme beim Einrichten des HTTPS-Zugriffs.

Ich habe mein Zertifikat erstellt und die Anweisungen aus dem AWS EB-Dokument befolgt: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-nodejs.html

Im Folgenden wird mein Problem beschrieben, nachdem der neue Code implementiert wurde:

Ich kann über HTTP immer noch eine Verbindung mit der URL in einem Browser herstellen. Wenn Sie jedoch versuchen, eine Verbindung mit HTTPS herzustellen, wird die Nachricht ERR_CONNECTION_REFUSED

angezeigt

Ich habe netcat verwendet, um zu prüfen, ob der Port 443 erreichbar ist, und nicht:

nc -z environment.elasticbeanstalk.com 80

gibt zurück:

Connection to environment.elasticbeanstalk.com port 80 [tcp/http] succeeded!

aber

nc -z environment.elasticbeanstalk.com 443

gibt nichts

zurück

Ich habe auch die eingehende Regel für die Sicherheitsgruppe überprüft, die der EC2-Instanz zugeordnet ist, und der Port 443 ist geöffnet: enter image description here

Schließlich überprüfte ich die elastischen Beanstalk-Protokolle und konnte keinen Verweis auf die HTTPS-Anforderung finden. Wenn ich zu der Zeit, in der ich versuche, über HTTPS auf die App zuzugreifen, nach Zeitstempeln suche, gibt es keine. Es sieht so aus, als hätte der Nginx-Server die Anfrage nie erhalten.

Ich hatte kein Problem, einen ähnlichen HTTPS-Zugriff einzurichten, als ich Elatstic Beanstalk mit PHP/Apache-Server verwendete, aber in diesem Fall bin ich neu bei node/nginx, daher kann ich etwas grundlegendes vermissen.

Haben Sie einen Vorschlag, was ich überprüfen könnte oder was ich tun könnte?

Vielen Dank im Voraus,

Erez

antworten

Ok, ich habe das Problem gefunden: In der Konfiguration mit elastischem Beanstalk wurde der Proxy nicht eingerichtet.

Ich habe die EB-Konfiguration aktualisiert, um den nginx-Proxy einzuschließen, und es hat funktioniert.

Configuration > Software Configuration > Container Options > Proxy server: nginx