【问题标题】:How do I import a public certificate to Windows Azure?如何将公共证书导入 Windows Azure?
【发布时间】:2011-08-27 02:40:38
【问题描述】:

我将通过 SSL 从 Windows Azure 与另一个公共 Web 服务进行通信。公共网络服务上的证书是自签名的。因此,我需要信任我的 Windows Azure 上的公共证书。

如何将证书 (.cer) 导入 Windows Azure?管理门户只允许导入带有私钥的证书。

【问题讨论】:

    标签: azure azure-web-roles


    【解决方案1】:

    这是我从私钥获取公共证书并上传到 Azure 的方式。

    1) 使用PowerShell获取证书:

    PS C:\MyWebsite> $cert = New-SelfSignedCertificate -DnsName mycompany.com -CertStoreLocation "cert:\LocalMachine\My" -KeyLength 2048 -KeySpec "KeyExchange"
    PS C:\MyWebsite> $password = ConvertTo-SecureString -String "mypassword" -Force -AsPlainText
    PS C:\MyWebsite> Export-PfxCertificate -Cert $cert -FilePath ".\mycompany.pfx" -Password $password
    

    2) 然后在门户中上传证书:

    详情请见https://docs.microsoft.com/en-us/azure/cloud-services/cloud-services-certs-create

    【讨论】:

      【解决方案2】:

      这是门户网站的问题。我原以为它是固定的——显然不是。您也可以随时将 .cer 转换为 .pfx(使用蹩脚的密码)。我从 LINQPad 运行它:

      void Main()
      {
          string file = @"C:\temp\deploy\dunnrydeploy.cer";
          var cert = X509Certificate2.CreateFromCertFile(file);
      
          var bytes = ((X509Certificate2)cert).Export(X509ContentType.Pfx, "p");
      
          var fs = File.Create(@"C:\temp\deploy\foo.pfx");
      
          using (fs)
          {
              fs.Write(bytes, 0, bytes.Length);
              fs.Flush();
          }
      }
      

      【讨论】:

        【解决方案3】:

        这实际上是门户网站的问题,而不是 azure 本身的问题。转到门户中的“添加证书”部分,单击浏览按钮,导航到您的 .cer 文件所在的位置。列出的文件被过滤为 .pfx 文件,因此您不会看到要导入的文件,但是,如果您输入文件名,它将起作用。

        【讨论】:

        • 我在尝试上传 .cer 时仍然收到一条错误消息,内容如下:PFX 证书文件“blah.cer”选择文件文件必须是 blah.cer 的 PFX 证书验证错误。详细信息:blah.cer 的文件扩展名不在允许的文件扩展名列表中 - “pfx”
        • 这很有趣。我刚刚在当前的门户中再次尝试了这个(这与我第一次写这个答案时的门户完全不同)。现在它似乎同时显示 .cer 和 .pfx 并且我能够毫无问题地上传 .cer 文件。您是针对云服务还是针对不同的 Azure 服务尝试此操作?
        【解决方案4】:

        关于如何做这件事的博客很少 - http://blogs.msdn.com/b/jnak/archive/2010/01/29/installing-certificates-in-windows-azure-vms.aspx

        这对角色中的自签名证书使用手动 XML 条目

           <Certificate name="SelfSigned" storeLocation="CurrentUser" storeName="<enter a value>" />
        

        【讨论】:

          猜你喜欢
          • 2015-05-04
          • 2013-07-06
          • 1970-01-01
          • 2022-12-16
          • 2013-06-09
          • 2020-07-07
          • 2014-11-10
          • 2017-06-23
          相关资源
          最近更新 更多