Wie implementieren von HTTP Strict Transport Security (HSTS) auf AWS Elastic Load Balancer?
Ich würde gerne verwirklichen HSTS für meine Anwendung.
Habe ich ein ELB das beenden von SSL und Weiterleitung der traffic auf meine Anwendung, das ist ein apache-server als reverse-proxy.
Ich weiß, dass es bei der Umsetzung HSTS, die ich brauchen würde, fügen Sie die header Strict-Transport-Security auf meine Anfrage.
Leider, es scheint, dass ich nicht implementieren kann, es auf meinem Apache-server, wie es hätte Hinzugefügt werden, um die HTTPS Virtual Host und mein Apache hat nur der http-virtuellen host konfiguriert, da die SSL ist terminiert auf den ELB.
Das bedeutet, dass der ELB, müssen Sie die header Strict-Transport-Security, um die Anforderung, wenn es pass it forward.
Wie mache ich das? Kann ich irgendeine Art von Sicherheitspolitik, die das für mich machen würden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fragte ich den AWS Support und die Antwort war, dass in dem moment ELB hinzufügen kann HSTS-Header auf die Anfragen von den clients. Also beschloss ich, einen workaround finden mit meinem Apache server. Hier ist die Lösung, die ich gefunden:
Den HSTS RFC besagt, dass
Was ich dann Tat war, um den header NACH http=>https-Umleitung im Apache. Da diese Umleitung hat das flag [L], das bedeutet, dass die 301-Umleitung wird nicht den Kopf, aber alle https-Anfrage. Meine apache config sieht wie folgt aus:
Wenn Sie die Arbeit mit Apache-2.4+, können Sie vertraut sein mit Ausdrücke und die Richtlinien
<If>
,<ElseIf>
, und<Else>
.Habe ich eine komplexe Konfiguration zwischen Entwicklungs -, staging-und Produktions-Umgebungen, so dass die Berufung auf die
[L]
fahne mit denRewriteRule
einfach nicht schneiden es für mich.Dies brachte mich auf die folgende Lösung, die ich meinem .htaccess:
Besser geht es in meiner Umgebung und ich habe das Gefühl, dass es viel sicherer ist für die Einhaltung des RFC.
Könnten Sie drop die
"%{REQUEST_SCHEME} == 'https'
Teil, wenn Sie nie auf Ihre Instanzen nicht direkt, aber das ist Teil meiner debug-Prozess in meiner dev-Umgebungen.Dank Pedreiro für den Hinweis mich in die richtige Richtung für die tatsächlichen Spezifikationen auf der HSTS RFC.
Vielleicht? - Hat zu lösen ein ähnliches Szenario hatte ich in der Vergangenheit.