auth_hash_algorithm
设置 NGINX 中用于安全链接哈希认证的哈希算法。
Secure link hash authentication
·
httpserverlocation
语法auth_hash_algorithm algorithm_name;
默认值none
上下文http, server, location
参数1
说明
auth_hash_algorithm 指令允许管理员指定在生成用于认证的安全链接时所使用的哈希算法。该算法对于创建将提供的消息、密钥和可选时间戳信息组合在一起的安全令牌至关重要。它利用由 OpenSSL 定义的密码学函数,支持多种算法,包括 SHA-256、SHA-512、MD5 等等。
要使用 auth_hash_algorithm 指令,必须在 http、server 或 location 等上下文中定义它。该指令接受一个参数,指定算法的名称(字符串形式)。当服务器处理包含安全链接的传入请求时,会使用指定的算法将哈希与从相关消息和密钥派生的预期值进行验证。此行为显著增强了包括时间敏感数据的链接的安全性,防止基于无效令牌的未授权访问资源。
模块中提供的每种算法都采用不同的方法将输入数据转换为安全令牌。算法的选择取决于安全需求或性能考虑;例如,更复杂的算法可能在提供更高安全性的同时增加计算开销。可选择算法的灵活性使 NGINX 配置能够适应不同环境中各种应用的特定需求。
配置示例
location /protected {
auth_hash on;
auth_hash_secret "your_secret_key";
auth_hash_message "$uri|$arg_timestamp|$auth_hash_secret";
auth_hash_algorithm sha256;
auth_hash_check_time $arg_timestamp;
auth_hash_check_token $arg_token;
}⚠
确保您用于 NGINX 构建的 OpenSSL 版本支持所指定的算法。
⚠
使用不安全的哈希算法(例如 MD5)可能会危及安全;应优先使用更强的算法,例如 SHA-256 或 SHA-512。
⚠
避免在算法名称中使用非标准字符,以防配置错误。