secure_link_hmac_secret

Директива secure_link_hmac_secret указывает секретный ключ, используемый для HMAC-аутентификации в защищённых ссылках.

Синтаксисsecure_link_hmac_secret key;
По умолчаниюnone
Контекстhttp, server, location
Аргументы1

Описание

Директива secure_link_hmac_secret является необходимой для работы модуля secure link с поддержкой HMAC в NGINX. Эта директива позволяет пользователю задать секретный ключ, который используется при генерации HMAC‑подписей для защиты ссылок, гарантируя, что доступ к определённым ресурсам получат только авторизованные запросы. Секретный ключ является критическим компонентом при формировании HMAC‑токена, который комбинируется с сообщением, обычно содержащим запрошенный URL, метки времени и необязательный параметр срока истечения. Это значительно повышает безопасность ссылки по сравнению со стандартными методами токенов, поскольку он устойчив к подделке.

При применении директива secure_link_hmac_secret должна использоваться вместе с директивой secure_link_hmac_message, которая определяет сообщение для подписи. Важно использовать сильный случайный ключ для усиления целостности ссылок. Алгоритм хеширования, применяемый в процессе HMAC, можно настроить с помощью директивы secure_link_hmac_algorithm. На практике защищённые ссылки генерируются на стороне клиента с использованием того же алгоритма HMAC, что указан в конфигурации NGINX, что добавляет уровень аутентификации при доступе к ресурсам на сервере.

Пример конфига

location ^~ /files/ {
    secure_link_hmac "$arg_st,$arg_ts,$arg_e";
    secure_link_hmac_secret "my_secret_key";
    secure_link_hmac_message "$uri|$arg_ts|$arg_e";
    secure_link_hmac_algorithm sha256;
    if ($secure_link_hmac != "1") {
        return 404;
    }
    rewrite ^/files/(.*)$ /files/$1 break;
}

Убедитесь, что секретный ключ остается конфиденциальным и не раскрывается в общедоступных конфигурациях.

Использование слабого или предсказуемого секретного ключа ставит под угрозу безопасность ваших HMAC-ссылок.

Убедитесь, что указанный алгоритм хеширования поддерживается вашей версией OpenSSL. Использование неподдерживаемого алгоритма может привести к ошибкам конфигурации.

← Ко всем директивам