secure_link_hmac_algorithm
定义用于在 NGINX 中创建安全链接的 HMAC 哈希算法。
Alternative NGINX HMAC Secure Link module with support for OpenSSL hashes
·
httpserverlocation
语法secure_link_hmac_algorithm algorithm;
默认值none
上下文http, server, location
参数1
说明
secure_link_hmac_algorithm 指令指定用于在 NGINX 服务器内为安全链接生成 HMAC (Hash-based Message Authentication Code) 的加密哈希函数。该指令是 Alternative NGINX HMAC Secure Link module 的一部分,允许用户从 OpenSSL 支持的多种哈希算法中选择,例如 sha256、sha512、md5 等。所选的哈希函数会影响链接验证操作的安全级别和性能,因为不同算法在复杂度和抗碰撞性方面有差异。\n\n当访问安全链接时,NGINX 会使用本指令指定的算法从一个组合消息计算 HMAC,该消息通常包含 URI、timestamp 和可选的过期期。生成的 HMAC 随后会与 HTTP 请求中提供的 token 进行比较,以验证链接的完整性和有效性。如果计算出的 HMAC 与 token 匹配且链接未过期,则授予访问权限。此灵活性支持各种安全框架,并确保链接生成符合组织的安全策略。
配置示例
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;
}⚠
确保所指定的算法被与 NGINX 一起使用的 OpenSSL 版本所支持。
⚠
更改算法可能需要同时更新服务端和客户端的实现以确保兼容性。
⚠
如果使用像 MD5 这样的较不安全的算法,应当意识到其相关的安全风险。