【问题标题】:Management certificate for job automation作业自动化管理证书
【发布时间】:2016-07-07 12:55:00
【问题描述】:

我们在使用 Azure 管理证书时遇到了一些问题。

我们的 Azure 帐户包含 3 个订阅。我们正在其中一个下运行 Azure TaskScheduler 的实例

我们需要为此订阅设置一个证书,以便能够从我们的 ASP.NET 应用程序登录。我们创建了一个新的自签名证书,将其上传到上述订阅下的 Azure 设置中,并将 .cer 的 BASE64 编码版本(没有私钥)放入我们应用的配置文件中。

当我们使用它通过 X509Certificate2 构造函数创建新证书时,它会成功。但是,如果我们尝试在 SchedulerClient 的凭据中使用此证书对象,则会失败并显示以下错误消息:

ForbiddenError:服务器未能验证请求。验证证书是否有效并且与此订阅相关联。

重要的是要知道此代码之前确实适用于另一个证书,但我们需要更改证书以解决另一个问题。似乎新证书未被识别为与订阅相关联,即使它显示在 Azure 门户上此订阅的管理证书列表中。

此 URL:https://manage.windowsazure.com/publishsettings/index?client=vs&schemaversion=2.0 每次订阅只会返回一个证书,但 MSDN 指南说每个订阅最多允许 100 个管理证书。

我们现在应该做什么?我们是否必须在 Azure 管理中做一些特别的事情来将新证书“分配”给调度程序或订阅?我们如何让 Azure 订阅识别新证书以进行身份​​验证?

【问题讨论】:

    标签: azure automation certificate scheduler azure-webjobs


    【解决方案1】:

    在 Azure Portal 的设置中上传管理证书后,似乎无法使用管理证书成功管理 Azure 服务。这个问题与另一个使用 Java azure free trial account not able to authenticate via java sdk 的 SO 线程非常相似。

    我的建议是尝试参考article 重新生成新的自签名证书并在 Azure 经典门户的设置中上传。请确保上传的管理证书存在于您的设置的MANAGEMENT CERTIFICATES 选项卡中,如下所示。

    然后,您可以参考reference将证书添加到http请求或构造函数SchedulerClient(HttpClient)的httpclient(见下面的代码)。

    X509Certificate2 certificate = GetStoreCertificate("<thumbprint>");
    var clientHandler = new WebRequestHandler()
    clientHandler.ClientCertificates.Add(certificate);
    var client = new HttpClient(clientHandler)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-18
      • 2022-10-15
      • 2011-02-15
      相关资源
      最近更新 更多