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

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

重要

从 2024 年 9 月 1 日开始,已弃用所有客户的云服务(经典版)。 从 2024 年 10 月开始,Microsoft 将停止并关闭任何正在运行的现有部署,数据将永久性丢失。 新部署应使用基于 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

此实用工具已停用,不再在此处记录。 有关详细信息,请参阅此 Microsoft Developer Network (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)

互联网上有许多介绍如何使用 IIS 创建证书的页面,例如何时使用 IIS 自签名证书

Linux

快速步骤:在 Azure 中为 Linux VM 创建和使用 SSH 公钥-私钥对介绍了如何使用 SSH 创建证书。

后续步骤

将服务证书上传到 Azure 门户

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