【问题标题】:Xero Failed to Validate SignatureXero 无法验证签名
【发布时间】:2016-10-29 02:59:30
【问题描述】:

我创建了一个 Xero 合作伙伴应用程序,并被要求更新我的委托证书。当我发布到 oauth/RequestToken 时,我收到此错误:

oauth_problem=signature_invalid&oauth_problem_advice=Failed%20to%20validate%20signature

以下是我采取的步骤:

  1. 我从 Xero 下载了 P12 委托证书。
  2. 在 certmgr 中,我将 P12 证书导入到我的个人证书存储中。
  3. 我右键单击了证书。我点击了所有任务并导出。
  4. 我说过不要导出私钥。
  5. 我将文件导出为 CER。
  6. 我登录了 developer.xero.com 并点击了应用程序。
  7. 我在表单中上传了 CER,然后点击了保存。

还有什么我必须采取的额外步骤吗?

【问题讨论】:

    标签: xero-api


    【解决方案1】:

    我认为你出错的地方是在第 5 阶段。

    委托证书不应上传到开发者门户中。

    您上传到开发者门户的 .cer 文件包含您的公钥,并用于解码您在 API 调用中提供的签名。此签名由您的应用程序使用与其关联的私钥签名。如果证书不匹配(现在 API 正在尝试使用错误的公钥解码),您将收到您所看到的“验证签名失败”错误。

    你会想要的

    1. 重新上传您最初用于应用程序的之前的 .cer 公钥文件,因为它将与您当前签名的私钥相匹配(除非您也更改了此文件)

    2. 按照此处所述重新生成新的公钥/私钥对:https://developer.xero.com/documentation/advanced-docs/public-private-keypair,将新的 .cer 公钥上传到开发者门户,然后在您的应用程序中使用新的私钥

    【讨论】:

    • 谢谢! CER 文件来自步骤 2 中的 OpenSSL 文档。如果我使用 IIS,我仍然需要使用 OpenSSL 来生成私钥和公钥。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2011-11-27
    • 2013-12-03
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多