api - 无法使用管理 REST API 升级 Azure 部署(SSL 证书问题)

标签 api rest azure ssl-certificate

我目前正在为 Windows Azure 托管服务开发自动部署流程。使用 msbuild 调用可以完美创建 .cspkg.cscfg 文件。现在,我正在编写一个小型 .NET 控制台应用程序,该应用程序应使用管理 REST API 将这些文件部署到 Azure。

API本身没有问题。我可以使用我的管理证书之一向 API 发送请求。我将 .cspkg 文件上传到 Azure BLOB 存储,然后尝试调用升级部署。但每次尝试时,我都会收到“400 Bad Request”响应,指出未找到带有指纹 xy 的证书。此证书是我用于自定义域 (DNS CNAME) 的 HTTPS 的 SSL 证书(不是管理证书)。

现在,整件事变得有趣了:

当我在 Visual Studio 中使用“发布”命令部署文件时,没有问题。 (我比较了 VS 中的 .cscfg/.cspkg 文件和我的 msbuild 输出:除了一些 GUID 之外,它们是相同的) 。此外,使用浏览器中的 Silverlight 管理工具,我什至可以上传使用 API 无法上传的生成文件。

当我使用List Certificates调用检索所有证书的列表时,据说丢失的证书显然在那里。我还可以使用 获取证书 调用检索其数据。

那么为什么 Azure 在使用升级部署调用时不断告诉我找不到证书?有人经历过类似的事情吗?有人给我提示吗?提前致谢。

P.S.:这是 Azure 在我使用 API 时所说的内容:

<Error xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <Code>BadRequest</Code>
    <Message>The certitficate with thumbprint 7b232c4a2d6e3deadbeef120d5dbc1fe8049fbea was not found.</Message>
</Error>

P.P.S.:是的,响应中的单词是certificate,而不是certificate

最佳答案

好的,使用 List Subscription Operations 后API 调用找出 Visual Studio 调用什么来部署应用程序,我找到了解决方案。

事实证明,我用于 API 请求的 URL 是错误的,但是:恕我直言,我责怪 Microsoft 糟糕地记录了其 Azure Management API .

在他们的文档中,他们写的要使用的 URL 是:

https://management.core.windows.net/<subscription-id>/services/hostedservices/<service-name>/deploymentslots/<deployment-slot>/?comp=upgrade

描述如下:

To generate the request URI, replace <subscription-id> with your subscription ID, <service-name> with the name of your service, <deployment-slot> with staging or production, and <deployment-name> with the unique name of your deployment.

他们忘记提及的是,您必须使用服务的 DNS 名称,而不是名称!他们至少可以返回一条适当的错误消息,告诉您服务名称无效、不存在或不属于您的订阅 ID,而不是提示某些证书问题。

谢谢 Microsoft,这花了我两天多的时间。

关于api - 无法使用管理 REST API 升级 Azure 部署(SSL 证书问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10242893/

相关文章:

javascript - Spotify API 400 错误 仅支持有效的承载身份验证

node.js - 连接两个 Nodejs REST API 服务器的最佳方法

java - 集成 Apache Camel CXF-RS + CXF Jax-RS OAuth

PHP 网站 - Twitter API + Abraham Oauth(无法找到 x_rate_limit_remaining )

api - golang json 解码中的指针

javascript - Instagram API : Is it possible to get a tagged photo from a certain date?

REST - 将 ID 放入正文中吗?

python - 使用 Databricks 将 Docx 保存在 Azure Blob 存储中

使用 ARM 模板创建 Azure IoT 中心端点?

c# - 尝试将我的 Web 应用程序从 VS Enterprise 2015 update 1 发布到 azure 时出错 :