4

我正在调用Azure REST List Subscription Operation

在我的开发机器上,我已将证书安装到当前用户\个人中。我可以成功调用 API 并得到响应。响应代码 = 200

在测试盒上,我已将相同的证书安装到 Current Use\Personal。我无法调用 API。我得到一个 403 禁止。完整错误如下:

<Error>
    <Code>AuthenticationFailed</Code>
    <Message>The server failed to authenticate the request.
    Verify that the certificate is valid and is associated with this subscription.
    </Message>
</Error>

所以我检查了证书,它从今天早些时候开始有效(因为它是今天进口的)并且有效到 2040 年 1 月。所以我认为它是有效的?

问题:

  1. 相同的代码/项目/服务适用于我的本地机器,但不适用于测试盒。为什么?
  2. 证书指纹相同,证书相同。该证书与 Subscription azure 帐户相关联,因为它在本地工作!为什么?
  3. 我还应该检查什么?我知道本地和测试盒服务都将证书附加到 Web 请求中(我通过详细日志记录知道这一点),但此时

    HttpWebResponse webResponse = webRequest.GetResponse() as HttpWebResponse;

我收到 403 禁止错误。

在这件事上我疯了。

更新:

在我在 Fiddler 中查看的响应中,响应的开头是:

HTTP/1.1 403 Forbidden
Content-Length: 294
Content-Type: application/xml; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Date: Fri, 27 Sep 2013 02:49:59 GMT

现在我想知道 Date 部分是否是问题所在。我记得读到日期必须在请求的 15 分钟内。在测试框中,当前时间是下午 12:49,因此返回的日期似乎“提前”了 2 小时。这可能是为什么?或者这种反应只是提琴手对日期的解释?

4

1 回答 1

1

从我的开发机器中以PFX 格式导出证书以及私钥,然后在生产机器上导入该 PFX 证书是解决我的身份验证/证书问题的方法。

于 2014-04-09T10:40:53.523 回答