使用AWS CLI创建CloudFront Signed URL时报Could not deserialize key data错误
AWS CLI生成CloudFront Signed URL报错
Could not deserialize key data解决方案 报错详情
执行的CLI命令如下:aws cloudfront sign --url https://xxxxxxxx.cloudfront.net/CDN.png --key-pair-id xxxxxxxxx --private-key private.pem --date-less-than 2022-08-25
返回错误信息:
Could not deserialize key data(中文释义:无法解析密钥数据)
排查修复方案
该报错的核心原因为AWS CLI无法正常读取、解析指定的私钥文件,可按以下步骤逐一排查:
- 确认私钥格式合规:CloudFront仅支持PEM格式的RSA私钥,需确保使用的是AWS CloudFront密钥对页面直接下载的原始私钥文件,未经过格式转换、内容编辑,不要误用公钥、证书文件代替私钥。
- 修复私钥文件权限:当前执行CLI命令的账户需要拥有private.pem文件的读取权限,Linux/macOS环境可执行
chmod 400 private.pem调整权限,避免权限配置异常导致文件读取失败。 - 校验私钥路径正确性:如果private.pem文件不在当前命令执行的工作目录下,需要填写私钥的绝对路径,例如
--private-key /Users/xxx/config/private.pem。 - 检查私钥内容完整性:打开private.pem文件,确认文件首尾行分别为
-----BEGIN RSA PRIVATE KEY-----和-----END RSA PRIVATE KEY-----,中间的密钥内容没有多余空格、换行错误、乱码或多余字符。 - 升级AWS CLI版本:过旧的CLI版本存在已知的密钥解析兼容问题,可升级到AWS CLI最新稳定版本后重试操作。
内容的提问来源于stack exchange,提问作者Mohamed Salem
相关产品推荐
相关产品推荐

