Unterstützte Methode zum Hinzufügen von "IncludeSubdomain" zu STS-Headern

Hallo zusammen,

für unsere aktuell selbst gehosteten Discourse-Instanzen müssen wir aufgrund der Anforderungen unserer internen Scanner „IncludeSubDomains“ zu unseren STS-Headern hinzufügen.

Zuvor habe ich dies erreicht, indem ich einige sed-Befehle in app.yml in benutzerdefinierten Befehlen nach dem Build verwendet habe, um /etc/nginx/conf.d/discourse.conf zu aktualisieren und 'add_header Strict-Transport-Security “max-age=31536000; includeSubDomains” always; hinzuzufügen,

sowie:

 - replace:
      filename: "/etc/nginx/conf.d/outlets/discourse/20-https.conf"
      from: /add_header Strict-Transport-Security.+/
      to: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
      global: true

  - replace:
      filename: "/etc/nginx/conf.d/outlets/server/20-https.conf"
      from: /add_header Strict-Transport-Security.+/
      to: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
      global: true

Dies funktionierte früher. Allerdings funktioniert es jetzt nicht mehr. Ich habe gelesen, dass das Erstellen einer neuen Outlet-Datei es mir ermöglichen sollte, dies mit Folgendem hinzuzufügen:

hooks:
  after_code:
    - file:
        path: /etc/nginx/conf.d/outlets/server/90-hsts.conf
        chmod: 444
        contents: |
          add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Dies führt jedoch dazu, dass zwei STS-Header vorhanden sind (einer vom SSL-Template und einer von meinem neuen Template). Gibt es eine bessere Möglichkeit, dies zu tun, damit ich nicht mit zwei STS-Headern dastehe? Ich dachte, nginx würde den zuletzt hinzugefügten Header respektieren und den SSL-Template-Header ignorieren, der nur max-age=31536000; enthält. Ist dies also ein Fehler? Vielen Dank für jede Hilfe, die Sie mir geben können.

Löst die Verwendung von set_header anstelle von add_header das Problem?

1 „Gefällt mir“

Ich werde das versuchen und berichten :slight_smile:

Wenn ich set_header verwende, erhalte ich bei einem erneuten Aufbau einen SSL-Fehler, wobei das Zertifikat nicht erkannt wird und beim Versuch, die Forumseite zu laden, die Meldung „Verbindung verweigert“ erscheint.

Einige weitere Informationen: Wir verwenden unser eigenes SSL-Zertifikat.

Diese beiden Fehler schließen sich gegenseitig aus…

Entschuldigung, nginx hat kein set_header – ich habe mich falsch erinnert, es stammt aus einem anderen Tool.

Die einfachste Option ist wahrscheinlich das Bearbeiten von templates/web.ssl.template.yml mit den neuen Werten, die Sie wünschen.

1 „Gefällt mir“

Ich würde das zuerst tun, da es am einfachsten ist. Sobald Sie es herausgefunden haben, ist der nächst einfachste Schritt, diese Datei an einen anderen Ort zu kopieren, damit Sie keine Probleme mit Konflikten mit git haben. Die beste Lösung wäre, Ihre aktuelle Strategie mit einer weiteren Zeile zu kombinieren, um die andere widersprüchliche Einstellung zu entfernen.

1 „Gefällt mir“

Vielen Dank für eure Hilfe beide!

1 „Gefällt mir“