调用大鹏云 API 时返回 HTTP 401 鉴权失败。401 表示请求未能通过身份认证,问题集中在 AccessKey 与签名请求头上。
可能原因
- X-Access-Key 请求头缺失或 AccessKey 填写错误;
- 密钥已被禁用或删除;
- X-Signature 签名计算错误(详见「API 签名验证失败的常见原因」);
- X-Timestamp 与服务器时间偏差超过 ±300 秒。
排查步骤
- 确认请求携带了三个必需请求头:X-Access-Key、X-Timestamp、X-Signature,且名称拼写正确。
- 登录会员中心 API 密钥管理页面,核对 AccessKey 是否完整复制(无空格、无截断)、状态为启用。
- 校验本机时间与标准时间的偏差,必须保持在 ±300 秒内:
date -u
# Linux 同步时间
timedatectl set-ntp true
- X-Timestamp 使用当前 Unix 时间戳(秒),不要传入毫秒或过期时间。
- 用最小化请求(curl)复现,排除代码封装问题:
curl -v -H "X-Access-Key: 你的AK" -H "X-Timestamp: $(date +%s)" -H "X-Signature: 计算结果" "https://api.example.com/v1/接口路径"
提示:三个请求头中任何一个缺失或格式不符,都会直接返回 401。
仍未解决
请通过「支持服务 → 工单」反馈,附上:使用的 AccessKey(可隐去部分字符)、完整的请求头与返回报文、请求发起时间,客服将核查服务端鉴权记录。