Bug: KopiaUI v0.19.0: WebDAV: Unable to authenticate against SHA256 Digests/RFC 7616 (HTTP userhash extension)

lighttpd.conf.20250318T180337UTC

{
    var.log_root                   = "/var/log/lighttpd/"
    var.server_root                = "/www/"
    var.state_dir                  = "/var/run/"
    var.home_dir                   = "/var/run/lighttpd"
    var.conf_dir                   = "/etc/lighttpd"
    var.vhosts_dir                 = "/www//vhosts"
    var.cache_dir                  = "/var/cache/lighttpd"
    var.socket_dir                 = "/var/run/lighttpd/sockets"
    server.document-root           = "/www/"
    server.upload-dirs             = ("/tmp")
    server.errorlog                = "/var/log/lighttpd/error.log"
    server.pid-file                = "/var/run/lighttpd.pid"
    server.username                = "http"
    server.groupname               = "www-data"
    server.port                    = "2080"
    index-file.names               = ("index.php", "index.html", "index.htm", "default.htm")
    static-file.exclude-extensions = (".php", ".pl", ".fcgi")
    mimetype.assign                = (
        ".sarif.json"                     => "application/sarif+json",
        ".sarif-external-properties.json" => "application/sarif-external-properties+json",
        ".1905.1"                         => "application/vnd.ieee.1905",
        ".tar.bz2"                        => "application/x-gtar-compressed",
        ".tar.gz"                         => "application/x-gtar-compressed",

        < snip >

        ".sisx"                           => "x-epoc/x-sisx-app",
        "README"                          => "text/plain;charset=utf-8",
        "Makefile"                        => "text/x-makefile;charset=utf-8",
        ""                                => "application/octet-stream",
    )
    setenv.add-response-header     = (
        "Referrer-Policy"           => "same-origin",
        "Strict-Transport-Security" => "max-age=31536000; includeSubDomains; preload",
        "X-Frame-Options"           => "DENY",
        "X-Content-Type-Options"    => "nosniff",
        "Server"                    => "stor",
    )
    server.modules                 = (
        "mod_auth",
        "mod_authn_file",
        "mod_openssl",
        "mod_setenv",
        "mod_webdav",
        "mod_openssl",
    )


    $HTTP["url"] =~ "^/dav(?:/|$)" {
        # block 1
        webdav.activate                = "enable"
        webdav.sqlite-db-name          = "/var/run/lighttpd/webdav-lock.db"
        auth.backend                   = "htdigest"
        auth.backend.htdigest.userfile = "/etc/lighttpd/webdav-digest.user"
        auth.require                   = (
            "/dav" => (
                "method"    => "digest",
                "algorithm" => "SHA-256",
                "userhash"  => "enable",
                "realm"     => "dav",
                "require"   => "valid-user",
            ),
        )
        auth.cache                     = (
            "max-age" => "3600",
        )
        dir-listing.activate           = "enable"
        dir-listing.encoding           = "utf-8"

    } # end of $HTTP["url"] =~ "^/dav(?:/|$)"

    $SERVER["socket"] == ":2443" {
        # block 2
        ssl.engine               = "enable"
        ssl.openssl.ssl-conf-cmd = (
            "MinProtocol" => "TLSv1.3",
            "Options"     => "-ServerPreference",
        )
        ssl.read-ahead           = "disable"
        ssl.pemfile              = "/etc/ssl/private/$domain.internal.pem"
        ssl.privkey              = "/etc/ssl/private/$domain.internal-key.pem"

    } # end of $SERVER["socket"] == ":2443"

    $HTTP["host"] == "stor.$domain.internal" {
        # block 3
        server.document-root = "/mnt/sda1/"

    } # end of $HTTP["host"] == "stor.$domain.internal"
}