你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 云服务(经典)证书概述

重要

新客户的云服务(经典版)现已弃用,并将于 2024 年 8 月 31 日对所有客户停用。 新部署应使用基于 Azure 资源管理器的新型部署模型 Azure 云服务(外延支持)

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

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

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

注意

Azure 云服务不接受 AES256-SHA256 加密证书。

什么是服务证书?

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

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

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

注意

云服务常见问题解答 - 配置和管理一文包含有关证书的一些有用信息。

什么是管理证书?

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

警告

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

限制

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

此外,管理证书不能与 CSP 订阅一起使用,因为 CSP 订阅仅支持 Azure 资源管理器部署模型,而管理证书使用的是经典部署模型。 有关 CSP 订阅选项的详细信息,请参阅 Azure 资源管理器与经典部署模型了解使用 Azure SDK for .NET 进行身份验证

创建新的自签名证书

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

  • X.509 证书。

  • 包含公钥。

  • 为密钥交换(.pfx 文件)而创建。

  • 使用者名称必须与用于访问云服务的域匹配。

    无法获取 cloudapp.net 域(或与 Azure 相关的任何域)的 TLS/SSL 证书;该证书的使用者名称必须与用于访问应用程序的自定义域名匹配。 例如,contoso.net,而不是 contoso.cloudapp.net

  • 至少采用 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

注意

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

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

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

Internet Information Services (IIS)

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

Linux

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

后续步骤

将服务证书上传到 Azure 门户

管理 API 证书上传到 Azure 门户。