You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用.NET SDK集成Amazon Pay生成签名时出现Unsupported private key format错误如何解决

异常根因
  • 私钥传入格式错误:如果传入的是私钥文本内容,存在多余的头尾标记、空格、换行符丢失/多余、特殊字符转义错误;如果传入的是私钥文件路径,存在路径错误、程序无文件读取权限、文件本身损坏的问题。
  • 私钥标准不匹配:Amazon Pay .NET SDK仅支持RSA 2048位的PKCS#8格式私钥,若你使用的是PKCS#1格式私钥、非RSA算法私钥、密钥长度不符合要求,都会触发该异常。
  • 密钥配对错误:传入的公钥ID和私钥不属于同一组密钥对,也可能引发格式校验失败的误报。
可行解决方案
  1. 优先使用私钥文件路径初始化
    避免直接硬编码私钥内容引发的转义问题,将私钥PEM文件放到程序有读取权限的目录,直接传入绝对路径测试:
var payConfiguration = new ApiConfiguration
(
    region: Region.Europe,
    publicKeyId: "MY_PUBLIC_KEY_ID",
    privateKey: @"D:\amazon_pay\private_key.pem" // 替换为你的实际文件路径
);
  1. 硬编码私钥内容的规范处理
    若必须直接传入私钥文本,需按以下规则处理:
  • 删除PEM文件头尾的-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----标记行
  • 保留私钥内容的原始换行,C#中使用@原义字符串避免转义错误
    示例:
var privateKeyContent = @"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC6...
X7d8fD9l123abcxYz456QWE==
...后续私钥内容";
  1. 转换私钥为符合要求的格式
    若当前私钥为PKCS#1格式(头尾标记为-----BEGIN RSA PRIVATE KEY-----),可使用openssl命令转换为PKCS#8格式:
    openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in 旧私钥文件.pem -out 新私钥文件.pem
    转换完成后使用新生成的私钥文件测试即可。
  2. 验证密钥配对关系
    登录Amazon Pay卖家后台,核对你使用的公钥ID和私钥属于同一组已激活的密钥对,不要混用不同环境(沙箱/生产)的密钥参数。

内容的提问来源于stack exchange,提问作者ebk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:06:04