secure_link_hmac_secret
Директива secure_link_hmac_secret указывает секретный ключ, используемый для HMAC-аутентификации в защищённых ссылках.
Описание
Директива 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. Использование неподдерживаемого алгоритма может привести к ошибкам конфигурации.