HTTPをHTTPSにリダイレクトするようにlighttpdを設定する方法は?

HTTPをHTTPSにリダイレクトするようにlighttpdを設定する方法は?

クライアントブラウザでサポートされている場合は、私のウェブサイトへのHTTPリクエストをHTTPSにリダイレクトしたいと思います。私のWebサーバーはlighttpdです。

答え1

これが私が手動で行った方法です。安全でないリクエストヘッダーのアップグレード。 lighttpdに関するドキュメントが見つからず、共有しているのにうまくいくようです。

ドメインの lighttpd 構成に以下を追加します。

$HTTP["host"] =~ "^example\.com$" {
        $HTTP["scheme"] == "http" {
                $REQUEST_HEADER["Upgrade-Insecure-Requests"] == "1" {
                        # Follows https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Upgrade-Insecure-Requests
                        # Adding the header only works if mod_setenv is loaded before mod_redirect in the server config!
                        # (See https://redmine.lighttpd.net/issues/1895)
                        setenv.add-response-header = (
                            "Vary" => "Upgrade-Insecure-Requests" 
                          )
                        url.redirect-code = 307
                        url.redirect = ("/(.*)" => "https://example.com/$1")
                }
        }
        # ... any extra configuration for domain example.com ...
}

変更を適用するには、lighttpdを再起動してください。

注:これを行うには、mod_setenvとmod_redirectをロードする必要があり、リダイレクト応答の一部として追加のヘッダーを送信する必要がないとします。

答え2

2007年のlighttpdドキュメントの公式ソースは次のwikiページです:https://wiki.lighttpd.net/HowToRedirectHttpToHttps

lighttpdの最新バージョンでは:

server.modules += ("mod_redirect")

$HTTP["scheme"] == "http" {
    url.redirect = ("" => "https://${url.authority}${url.path}${qsa}")
    url.redirect-code = 308
}

到着適切にVary: Upgrade-Insecure-Requests応答ヘッダーを使用してすべての要求httpに応答する可能httpsリダイレクトされ、Upgrade-Insecure-Requests設定されている場合にのみ次にリダイレクトされます。

server.modules += ("mod_setenv", "mod_redirect")
$HTTP["scheme"] == "http" {
    # Follows https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Upgrade-Insecure-Requests
    # Adding the header only works if mod_setenv is loaded before mod_redirect in lighttpd.conf!
    # (See https://redmine.lighttpd.net/issues/1895)
    setenv.add-response-header = ("Vary" => "Upgrade-Insecure-Requests")
    $REQUEST_HEADER["Upgrade-Insecure-Requests"] == "1" {
        url.redirect = ("" => "https://${url.authority}${url.path}${qsa}")
        url.redirect-code = 308
    }
}

関連情報