1. ホーム
  2. apache

[解決済み] HTTPSのみ.htaccessからHSTSヘッダーを設定する方法【終了しました

2023-05-06 02:36:10

質問

私のWebアプリケーションは、私がコントロールする異なる数のホスト上で動作します。それぞれのホストのApacheの設定を変更する必要性を防ぐために、私は自分のリポジトリにある.htaccessファイルを使って設定の大部分を追加します。これにより、新しいバージョンのデプロイ時に設定を変更することも可能になります。現在、.htaccess はヘッダを (un) セットし、いくつかのリライトマジックを行い、UA のキャッシュを制御しています。

.htaccessを使用してアプリケーションでHSTSを有効にしたいです。ヘッダーを設定するだけなら簡単です。

Header always set Strict-Transport-Security "max-age=31536000"

しかし、仕様には次のようにはっきりと書かれています: "An HSTS Host MUST NOT include the STS header field in HTTP responses conveyed over non-secure transport.". そのため、HTTP接続で送信する場合はヘッダを送信しないようにしたいですね。参照 https://datatracker.ietf.org/doc/html/draft-ietf-websec-strict-transport-sec-14 .

環境変数を使ってヘッダーを設定しようとしたのですが、そこで行き詰ってしまいました。その方法を知っている人はいますか?

どのように解決するのですか?

HTTPS環境変数が用意されているようなので、それを使うと簡単に解決します。同じ疑問を持っている人へ。

Header set Strict-Transport-Security "max-age=31536000" env=HTTPS