如何在azure上部署的云服务上引用x.509证书?

时间:2016-12-24 13:49:45

标签: c# .net wcf azure azure-cloud-services

在Azure上部署Web服务后,我无法引用x.509证书。我得到的错误是:

  

使用以下搜索条件找不到X.509证书:StoreName'My',StoreLocation'LocalMachine',   FindType'FindByThumbprint',FindValue'd50d00762ab0b5bfa2ccd51122360e89ff5db55e'

我尝试了各种StoreName和Location排列,但没有成功。 部分配置如下:

<behaviors>
      <endpointBehaviors>
        <behavior name="ClientCredentialsBehavior">
          <clientCredentials>
            <clientCertificate findValue="D50D00762AB0B5BFA2CCD51122360E89FF5DB55E"  storeLocation="LocalMachine" storeName="TrustedPeople" x509FindType="FindByThumbprint"/>
            <serviceCertificate>
              <defaultCertificate findValue="E194EBAAFBE5129D097795751127D21577293A87" storeLocation="LocalMachine" storeName="TrustedPeople" x509FindType="FindByThumbprint"/>
            </serviceCertificate>
          </clientCredentials>
        </behavior>

如何在azure上解决此错误。请帮助我,我现在花了几个小时试图解决这个问题。谢谢。

1 个答案:

答案 0 :(得分:1)

要解决您遇到的问题,请确保证书已在云服务中上传,并且该证书在云服务配置文件(csdef / cscfg)中引用。请参阅此链接,了解如何执行此操作:https://docs.microsoft.com/en-us/azure/cloud-services/cloud-services-configure-ssl-certificate#step-2-modify-the-service-definition-and-configuration-files

现在来了解释:)。

如您所知,云服务是PaaS产品。因此,您需要告诉您的应用程序需要使用在云服务中上载的证书的Fabric Controller(它可以创建您的VM,安装您的应用程序并进行所有配置更改)。

将其告知Fabric Controller的方式是在服务定义文件/服务配置文件中指定证书详细信息(如证书指纹)。您还可以告诉Cloud Service VM在哪个证书存储中,您希望Fabric Controller安装证书。

Fabric Controller获取此信息后,在创建VM时,它将转到已在云服务中上载的证书,根据指纹查找匹配的证书,并在Cloud Service VM中安装该证书。由于您未在服务定义/配置文件中指定此项,因此您的云服务VM上从未安装过该证书。