2013-09-27 130 views
4

我打电话给Azure REST List Subscription Operation列表订阅操作:403禁止

在我的开发机器上,我已经将证书安装到当前用户\个人。我可以成功调用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. 我的本地机器上的相同的代码/项目/服务的工作原理,但不是在测试盒。为什么?
  2. 证书指纹是一样的,证书是一样的。证书与订阅Azure帐户相关联,因为它在本地工作!为什么?
  3. 我还应该检查什么?我知道,无论在本地和测试箱服务的附加证书到web请求(我通过详细日志记录知道这一点),但在

    HttpWebResponse WebResponse类= webRequest.GetResponse()作为HttpWebResponse;

我收到403禁止的错误。

在这一个我不介意。

更新:

在我的提琴手查看响应,响应的开头是:

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:49 pm,因此看起来返回的日期“提前”了2个小时。这可能是为什么?或者,那只是小提琴演绎者的反应呢?

+0

403错误通常表示证书有问题。根据您之前发布的其他线索,我记得您的测试框中存在证书问题。您可以做的一件事就是在您的测试框中创建一个全新的证书,而不是从开发箱导入并使用该证书来验证API请求。 –

+0

是的,我想过这样做,但是盒子被锁定,没有安装makecert。 – andrewb

+0

还有一个想法 - 在其他机器上创建一个证书,然后像在测试框中那样将其导入开发框。这样你就可以在你的开发箱上重新创建测试环境(就证书而言)。另外,不确定您的测试盒是否安装了IIS,但您也可以使用IIS创建证书。 –

回答

1

从自己的计算机导出证书PFX格式私钥一起,然后导入生产机器上的PFX证书是什么在我的情况下解决了身份验证/认证问题。

+0

azure只允许.cer文件,如何为PFX做这件事? –

+0

是的,对于Azure你只上传.CER文件(Azure> Settings> Management Certificates)。在我的回答中,我指的是与Azure通信的服务器的设置 - 在那里我必须安装正确的证书以使其正常工作。 – ueberboss