Azure 云服务证书概述

证书在 Azure 中用于云服务(服务证书)以及用于通过管理 API 进行身份验证(管理证书)。 本主题提供了这两种证书类型的一般概述,并说明了如何创建并将其部署到 Azure。

Azure 中使用的证书是 x.509 v3 证书,可自签名或由另一个受信任的证书签名。自签名证书由其创建者签名,因此,默认情况下不受信任。大多数浏览器可以忽略此问题。自签名证书应仅在开发和测试云服务时使用。

Azure 使用的证书可以包含一个私钥或公钥。 证书具有指纹,它提供了一种明确识别证书的方法。 该指纹在 Azure 配置文件中用于识别云服务应使用的证书。

什么是服务证书?

服务证书被附加到云服务,可实现与服务之间的安全通信。 例如,如果部署了 Web 角色,则需要提供可对公开 HTTPS 终结点进行身份验证的证书。 在服务定义中定义的服务证书会自动部署到运行角色实例的虚拟机。

可使用 Azure 门户或使用经典部署模型将服务证书上传到 Azure。 服务证书与特定的云服务相关联。 它们在服务定义文件中分配给部署。

服务证书可与服务分开管理,且可由不同的人员管理。 例如,开发人员上传的服务包可以使用 IT 管理员以前上传到 Azure 的证书。 IT 管理员可以管理并续订该证书(更改服务配置)而无需上传新的服务包。 在没有新服务包的情况下更新之所以可能是因为证书的逻辑名称、存储名称和存储位置是在服务定义文件中指定的,而证书指纹则是在服务配置文件中指定的。 若要更新证书,只需上传新证书并更改服务配置文件中的指纹值。

Note

云服务常见问题一文包含有关证书的一些有用信息。

什么是管理证书?

使用管理证书可以通过经典部署模型进行身份验证。 许多程序和工具(如 Visual Studio 或 Azure SDK)会使用这些证书来自动配置和部署各种 Azure 服务。 实际上,这些证书与云服务并无关系。

Warning

请注意! 这些类型的证书允许使用它们进行身份验证的任何人管理与其相关联的订阅。

限制

每个订阅最多只能有 100 个管理证书。 特定服务管理员用户 ID 下的所有订阅同样最多只能有 100 个管理证书。 如果帐户管理员的用户 ID 下已添加 100 个管理证书,但还需要更多证书,则可以添加共同管理员,从而增加额外的证书。

创建新的自签名证书

任何可用工具均可用于创建自签名证书,前提是符合以下设置:

  • X.509 证书。
  • 包含私钥。
  • 为密钥交换(.pfx 文件)而创建。
  • 使用者名称必须与用于访问云服务的域匹配。 > 你无法获取 chinacloudapp.cn 域(或与 Azure 相关的任何域)的 SSL 证书;该证书的使用者名称必须与用于访问应用程序的自定义域名匹配。 例如,contoso.net 而不是 contoso.chinacloudapp.cn。
  • 至少采用 2048 位加密。
  • 仅服务证书:客户端证书必须驻留在个人证书存储区。

在 Windows 上有两种简单方法可以创建证书,分别是使用 makecert.exe 实用程序或 IIS。

Makecert.exe

此实用工具已被弃用,此处不再赘述。 有关详细信息,请参阅 此 MSDN 文章

PowerShell

$cert = New-SelfSignedCertificate -DnsName yourdomain.cloudapp.net -CertStoreLocation "cert:\LocalMachine\My" -KeyLength 2048 -KeySpec "KeyExchange"
$password = ConvertTo-SecureString -String "your-password" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath ".\my-cert-file.pfx" -Password $password

Note

如果要将证书用于 IP 地址而不是域,请在 -DnsName 参数中使用 IP 地址。

如果要将此证书用于管理门户,请将其导出到 .cer 文件:

    Export-Certificate -Type CERT -Cert $cert -FilePath .\my-cert-file.cer

Internet Information Services (IIS)

Internet 上有许多关于如何使用 IIS 实现此操作的信息。 此页面 就是示例之一,其阐述非常清楚。

Linux

本文介绍如何通过 SSH 创建证书。

后续步骤