key

'key' 指令指定用于在 NGINX 的 Secure Token 模块中为请求生成安全令牌的 HMAC 密钥。

语法key hex_string;
默认值none
上下文
参数1

说明

'key' 指令在 NGINX 的 Secure Token 模块中对于生成安全内容分发令牌至关重要,尤其是在与像 Akamai 和 CloudFront 这样的 CDN 集成时。通过指定表示密钥的 hex-encoded 字符串,服务器可以创建 HMAC (Hash-based Message Authentication Code) 值,从而确保令牌的完整性和真实性。

这些令牌可以作为 query string parameters 或 cookies 包含在请求中,允许客户端基于有时间限制且安全的令牌对受保护资源的访问进行验证。

在设置 'key' 指令时,使用不易被猜测的强密钥非常重要,因为它会直接影响生成令牌的安全性。该密钥与诸如 expiration time 和 ACL (Access Control List) 等参数协同工作,这些参数分别为资源访问增加了多层安全性和控制。HMAC 使用 SHA-256 哈希算法计算,从而确保较高的安全性,因为验证令牌的完整性以防篡改需要原始密钥。

设置 'key' 是强制性的,因为没有它模块无法生成有效的令牌。在后端,此密钥将用于计算令牌的 HMAC,从而最终提供一种安全的资源访问控制方法。如果密钥未正确设置,即使客户端提供了有效的令牌,也可能因签名不匹配而被拒绝访问。

配置示例

secure_token_akamai {
    key 0123456789abcdef0123456789abcdef;
    acl "allow all";
    start 1h;
    end 2h;
    param_name "token";
}

确保密钥足够长且复杂,以防止暴力破解。

必须以十六进制格式提供密钥;格式不正确可能导致令牌生成出错。

更改密钥需要重新分发令牌,因为之前发出的令牌在密钥更改后将失效。

← 返回所有指令