secure_link_secret
`secure_link_secret` 指令定义了一个用于在 NGINX 中验证安全链接的共享密钥。 — NGINX HTTP Core
secure_link_secret
httpserverlocation
语法secure_link_secret string;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1
说明
`secure_link_secret` 指令用于 NGINX 配置中,指定一个用于生成和验证安全链接的密钥。这对于保护敏感资源特别有用,因为它确保只有拥有正确签名的客户端才能访问链接,从而限制目标文件对未授权用户的暴露。 当创建安全链接时,链接由原始文件名和过期时间戳组成,这些内容会与 `secure_link_secret` 一起进行加密哈希处理。这使得链接防篡改,因为对链接的任何更改都会导致验证失败。当用户尝试访问安全链接时,NGINX 会使用 `secure_link_secret` 验证该签名,只有在哈希有效且未过期的情况下才允许访问。 该指令接受一个参数,用于指定共享密钥字符串。它应在 `http`、`server` 或 `location` 上下文中配置,使用此指令可启用与安全链接相关的功能,这可能还涉及使用 `secure_link` 指令来管理实际的链接生成和验证过程。必须妥善保管共享密钥以防止未授权访问资源。
配置示例
http {
secure_link_secret "1mVm0gfR1cuNzU3nXqRxVhbSe3";
}
server {
location /protected {
secure_link $arg_hash,$arg_time;
if ($secure_link = "0") {
return 403;
}
# Serve the protected content...
}
}⚠
确保共享密钥保密,不得向公众泄露,也不得以任何方式记录在日志中。
⚠
在链接发出后更改密钥会使这些链接失效,需要使用新密钥重新生成链接。
⚠
在开发过程中测试安全链接可能需要复杂的配置以确保密钥被正确设置。任何不匹配都会阻止访问。