Ich habe ein selbstsigniertes Zertifikat erstellt, hat es zu Heroku hinzugefügt und einen SSL-Endpunkt auf Heroku bereitgestellt, und ich logge heroku certs:info
ein, scheint es dort zu sein.
Ich erstelle meinen Server auf Express wie folgt:
%Vor% Und dann umleiten zu https
wie folgt:
Der Server läuft gut, aber ich stieß auf dieses Code-Snippet auf S.O. um einen https
Server zu erstellen:
Ich zeige nicht auf die certs / keys wie in diesem Beispiel, und meine Site läuft auf https (obwohl die Sperre rot ist, da sie selbstsigniert ist).
Also meine Frage ist, wie weiß mein Server über meine Schlüssel / Zertifikate, ohne dass ich explizit darauf hinweise, wie das Code-Snippet mit server_options
? Wird dies hinter den Kulissen von Heroku erledigt?
Wie funktioniert der SSL-Endpunkt, den ich auf Heroku eingerichtet habe, mit dem http
-Server, den ich mit var server = require('http').createServer(app);
erstellt habe?
BEARBEITEN
Ich antworte nur so auf einer anderen Frage :
"Die SSL-Terminierung erfolgt bei den Load Balancern von Heroku. Sie senden Ihrer App reinen (Nicht-SSL-) Traffic, sodass Ihre App einen Nicht-HTTPS-Server erstellen sollte."
they send your app plain (non-SSL) traffic
genau? Bedeutet das, dass ich nicht auf https
in meiner App umleiten muss? Die SSL-Terminierung wird auf Heroku-Servern / Load-Balancern durchgeführt, bevor der Datenverkehr zu Ihrer Anwendung gelangt. Das "Ding", dem Sie Ihr Zertifikat hinzugefügt haben, war nicht Ihr Prüfstand, sondern ein von Heroku gesteuerter Server.
Wenn also SSL-Verkehr (https) eingeht, wird er auf dem Server "gestoppt" (beendet). Dieser Server öffnet eine neue Ссылка Verbindung zu Ihrem Dyno, und was auch immer es bekommt, sendet sie über https zurück an den Client.
Sie müssen also auf Ihrem Prüfstand nicht mit Zertifikaten "herumhantieren", und Sie werden nur eingehenden Ссылка Datenverkehr sehen: ob direkt von http-Clients oder von Heroku-Servern, die https sprechen an Kunden und http an Sie.
Die Umleitung zu https ist eine andere Sache: Wenn ein Client mit http zu Ihrer App "kommt", und Sie bevorzugen, dass sie https verwenden, auf jeden Fall Redirect. Sie werden eine neue Anfrage stellen, dieses Mal https, und gehen Sie durch Herokus SSL-Kündigung und dann zu Ihrer App. Aber jetzt wissen Sie, dass der Pfad zwischen dem Client und Heroku sicher ist (weil der Client https verwendet) und der Pfad zwischen dem Heroku SSL-Abschluss und Ihrem Dyno vermutlich sicher ist (wenn Sie Heroku vertrauen ...)
HTH