secure_link_hmac_secret
secure_link_hmac_secret 指令指定用于安全链接中 HMAC 身份验证的密钥。
Alternative NGINX HMAC Secure Link module with support for OpenSSL hashes
·
httpserverlocation
语法secure_link_hmac_secret key;
默认值none
上下文http, server, location
参数1
说明
secure_link_hmac_secret 指令对于 NGINX 中 HMAC 安全链接模块的运行至关重要。该指令允许用户定义一个用于生成 HMAC 签名以保护链接的密钥,从而确保只有经过授权的请求才能访问某些资源。该密钥是构造 HMAC 令牌的关键组成部分,通常将其与一条消息组合,消息通常包含请求的 URL、时间戳以及可选的过期参数。与标准令牌方法相比,这显著增强了链接的安全性,因为它能够抵御篡改。
在使用时,secure_link_hmac_secret 必须与定义待签名消息的 secure_link_hmac_message 指令配合使用。使用强随机密钥对于加强链接的完整性非常重要。用于 HMAC 过程的哈希算法可以通过 secure_link_hmac_algorithm 指令进行配置。实际应用中,安全链接通常在客户端生成,使用与 NGINX 配置中指定相同的 HMAC 算法,从而在访问服务器资源时增加一层认证。
配置示例
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 版本支持。使用不受支持的算法可能导致配置错误。