我正在调用Azure REST列表订阅操作。
所以我检查了证书,它是有效的,从今天早些时候开始(因为今天导入),到2040年1月有效。所以我认为它是有效的?
问题: 1. 相同的代码/项目/服务在我的本地机器上可以工作,但是在测试环境中却不能工作。为什么? 2. 证书指纹相同,证书也相同。该证书与订阅Azure帐户相关联,因为它在本地可以工作!为什么? 3. 我还应该检查什么?我知道本地和测试环境都将证书附加到Web请求上(通过详细日志了解),但在下面的位置: HttpWebResponse webResponse = webRequest.GetResponse() as HttpWebResponse; 我收到403禁止错误。
这件事让我失去理智。
更新: 在Fiddler中查看响应时,响应的开头是:
在我的开发机器上,我已将证书安装到“当前用户\个人”中。我可以成功调用API并获得响应。响应代码为200。
在测试环境中,我已将相同的证书安装到“当前用户\个人”中。但是我无法调用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. 证书指纹相同,证书也相同。该证书与订阅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
现在我在想日期部分是否有问题。我记得读到过日期必须在请求的15分钟之内。在测试盒中,当前时间是12:49pm,因此似乎返回的日期“超前”了2个小时。这可能是原因吗?还是这个响应只是Fiddler对日期的解释?