Meine Webanwendung wird auf einer anderen Anzahl von Hosts ausgeführt, die ich steuere. Um zu verhindern, dass die Apache-Konfiguration jedes vhost geändert werden muss, füge ich den größten Teil der Konfiguration mithilfe von .htaccess-Dateien in meinem Repo hinzu, sodass die Grundeinstellung jedes Hosts nur aus wenigen Zeilen besteht. Dies ermöglicht auch das Ändern der Konfiguration beim Bereitstellen einer neuen Version. Derzeit setzt .htaccess (un) Header, schreibt etwas um und steuert das Caching der UA.
Ich möchte HSTS in der Anwendung mit .htaccess aktivieren. Das Setzen des Headers ist einfach:
Header always set Strict-Transport-Security "max-age=31536000"
In der Spezifikation heißt es jedoch eindeutig: "Ein HSTS-Host darf das STS-Headerfeld NICHT in HTTP-Antworten enthalten, die über einen nicht sicheren Transport übermittelt werden." Daher möchte ich den Header nicht senden, wenn er über HTTP-Verbindungen gesendet wird. Siehe http://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-14 .
Ich habe versucht, den Header mithilfe von Umgebungsvariablen festzulegen, bin aber dort hängen geblieben. Wer weiß, wie das geht?