Apache-2.2

每當在 URL 中指定 https 時,%{HTTPS} 變數是否啟用?

  • April 15, 2018

從 Apache HTTP Server 的手冊中,它提到

如果連接使用 SSL/TLS,將包含文本“on”。

這是否意味著它僅在 SSL/TLS 連接完全建立且握手成功完成時才“開啟”?或者它是否意味著只要請求者在 URL 中指定“https”並啟動 SSL/TLS 連接,它就“開啟”?

因為我有很多 VH(一些 http,一些 https),並且希望通過在所有 VH 外部和之前使用 %{HTTPS} 添加嚴格傳輸安全響應標頭來節省工作量。我想知道請求者是否在 URL 中為不支持 https 的 VH 指定了“https”,條件檢查是否仍會在錯誤響應中添加 Strict Transport Security 標頭。

我想知道請求者是否在 URL 中為不支持 https 的 VH 指定了“https”,條件檢查是否仍會在錯誤響應中添加 Strict Transport Security 標頭。

如果虛擬主機不支持 HTTPS,則連接將失敗,瀏覽器將無法獲得 HTTP 響應,因此無法取回任何 HTTP 標頭。

所以是的,您可以安全地根據該 HTTPS 變數添加 HSTS。

或者,如果仍然擔心,那麼只需將其添加到 HTTPS 虛擬主機配置而不是頂級配置。這是我的首選選項,因為它允許每個虛擬主機使用不同的 HSTS 標頭(例如,如果由於某些子域在 HTTPS 上仍然不可用,您還沒有準備好在includeSubDomain頂級域中使用屬性)。

引用自:https://serverfault.com/questions/907717