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

关于 Azure Key Vault 证书

Azure Key Vault 证书支持适用于 X.509 证书管理,它提供下列行为:

  • 允许证书所有者通过 Key Vault 创建过程或通过导入现有证书来创建证书。 这包括自签名证书和证书颁发机构 (CA) 生成的证书。

  • 允许 Key Vault 证书所有者实现安全存储和管理 X.509 证书,无需使用私钥材料进行交互。

  • 允许证书所有者创建一个策略,指示 Key Vault 来管理证书生命周期。

  • 允许证书所有者提供联系信息,用于接收有关证书到期和续订生命周期事件的通知。

  • 支持在选定的证书颁发者(Key Vault 合作伙伴 X.509 证书提供商和 CA)处自动续订证书。

    注意

    还可以使用非合作伙伴提供商和颁发机构,但此选项不支持自动续订功能。

有关证书创建的详细信息,请参阅证书创建方法

证书的组成部分

创建 Key Vault 证书后,还可以创建具有相同名称的可寻址密钥和机密。 密钥保管库密钥允许密钥操作,密钥保管库机密允许将证书值检索为机密。 Key Vault 证书还包含公共 X.509 证书元数据。

标识符和证书版本与密钥和机密的类似。 使用 Key Vault 证书版本创建的特定版本的可寻址密钥和机密可用于 Key Vault 证书响应。

显示证书在 Key Vault 中的角色的关系图。

可导出或不可导出的密钥

创建 Key Vault 证书后,可以使用 PFX 或 PEM 格式的私钥从可寻址机密中检索该证书。 用于创建证书的策略必须指示密钥可导出。 如果策略指示密钥不可导出,则以机密的形式进行检索时,私钥不是值的一部分。

使用不可导出的 Key Vault 证书时,可寻址密钥变得更相关。 可寻址 Key Vault 密钥的操作从用于创建 Key Vault 证书的 Key Vault 证书策略的 keyusage 字段进行映射。

下表列出了支持的密钥类型。

密钥类型 关于 安全性
RSA 受软件保护的 RSA 密钥 FIPS 140-2 级别 1
RSA-HSM 受 HSM 保护的 RSA 密钥(仅限高级 SKU) FIPS 140-2 级别 2 HSM
EC 受软件保护的椭圆曲线密钥 FIPS 140-2 级别 1
EC-HSM 受 HSM 保护的椭圆曲线密钥(仅限高级 SKU) FIPS 140-2 级别 2 HSM
oct 受软件保护的八进制密钥 FIPS 140-2 级别 1

仅 RSA 和 EC 允许可导出密钥。 HSM 密钥不可导出。 有关密钥类型的详细信息,请参阅创建证书

证书属性和标记

除了证书元数据、可寻址密钥和可寻址机密外,Key Vault 证书还包含属性和标记。

属性

证书属性将镜像到创建 Key Vault 证书时创建的可寻址密钥和机密的属性。

Key Vault 证书具有以下属性:

  • enabled:此布尔属性是可选的。 默认值为 true。 可以指定该属性,以指示证书数据是否可以以机密的形式进行检索,或者可以作为密钥进行操作。

    当操作发生在 nbfexp 之间时,该属性还与 nbfexp 结合使用,但前提是将 enabled 设置为 truenbfexp 时段外的操作会自动禁止。

此外,响应还包括以下只读属性:

  • createdIntDate 指示创建此版本的证书的时间。
  • updatedIntDate 指示更新此版本的证书的时间。
  • expIntDate 包含 X.509 证书到期日期的值。
  • nbfIntDate 包含 X.509 证书“生效时间”日期的值。

注意

如果 Key Vault 证书过期,将无法操作它的可寻址密钥和机密。

Tags

证书的标记是客户端指定的键/值对字典,与密钥和机密中的标记非常类似。

注意

如果调用方具有该对象类型(密钥、机密或证书)的 list 或 get 权限,则调用方可读取标记。

证书策略

证书策略包含有关如何创建和管理 Key Vault 证书生命周期的信息。 具有私钥的证书导入到 Key Vault 时,Key Vault 服务通过读取 X.509 证书创建一个默认策略。

从零开始创建 Key Vault 证书时,需要提供策略。 该策略指定如何创建此 Key Vault 证书版本或下一个 Key Vault 证书版本。 建立策略后,便不需要使用连续创建操作创建将来的版本。 所有版本的 Key Vault 证书只有一个策略实例。

在高级别,证书策略包含以下信息:

  • X.509 证书属性,包括使用者名称、使用者替换名称以及用于创建 X.509 证书请求的其他属性。

  • 密钥属性,包括密钥类型、密钥长度、可导出字段和 ReuseKeyOnRenewal 字段。 这些字段指示 Key Vault 如何生成密钥。

    支持的密钥类型包括 RSA、RSA-HSM、EC、EC-HSM 和 oct。

  • 机密属性,例如可寻址机密的内容类型,用于生成机密值,以便以机密的形式检索证书。

  • Key Vault 证书的生存期操作。 每个生存期操作包含:

    • 触发器:指定为距离到期的天数或生存期范围百分比。
    • 操作:emailContactsautoRenew
  • 有关用于颁发 X.509 证书的证书颁发者的参数。

  • 与策略关联的属性。

有关详细信息,请参阅 Set-AzKeyVaultCertificatePolicy

将 X.509 使用情况映射到密钥操作

下表表示 X.509 密钥使用策略映射到在创建 Key Vault 证书过程中创建的密钥的有效密钥操作。

X.509 密钥使用情况标记 Key Vault 密钥操作 默认行为
DataEncipherment encrypt, decrypt 不适用
DecipherOnly decrypt 不适用
DigitalSignature sign, verify Key Vault 在创建证书时默认为无使用规范
EncipherOnly encrypt 不适用
KeyCertSign sign, verify 不适用
KeyEncipherment wrapKey, unwrapKey Key Vault 在创建证书时默认为无使用规范
NonRepudiation sign, verify 不适用
crlsign sign, verify 不适用

证书颁发者

Key Vault 证书对象包含与所选证书颁发者提供商进行通信的配置以订购 X.509 证书。

具有以下 TLS/SSL 证书颁发者提供商的 Key Vault 合作伙伴。

提供程序名称 位置
DigiCert 公有云和 Azure 政府中的所有 Key Vault 服务位置均支持
GlobalSign 公有云和 Azure 政府中的所有 Key Vault 服务位置均支持

在 Key Vault 中创建证书颁发者之前,管理员必须执行以下先决条件步骤:

  1. 使用至少一个 CA 提供商加入组织。

  2. 为 Key Vault 创建请求者证书以注册(和续订)TLS/SSL 证书。 此步骤提供用于在 Key Vault 中创建提供商的颁发者对象的配置。

有关从证书门户创建颁发者对象的详细信息,请参阅 Key Vault 团队博客

Key Vault 允许使用其他颁发者提供商的配置创建多个颁发者对象。 在创建颁发者对象以后,即可在一个或多个证书的策略中引用其名称。 在创建和续订证书的过程中通过 CA 提供商请求 X.509 证书时,引用颁发者对象可以指示 Key Vault 按颁发者对象中的规定使用配置。

颁发者对象是在保管库中创建的。 它们只能与同一保管库中的 Key Vault 证书一起使用。

注意

公开受信任证书在注册期间将被发送到 Azure 边界之外的 CA 和证书透明度 (CT) 日志。 这些证书将包含在这些实体的 GDPR 策略中。

证书联系人

证书联系人包含联系人信息,用于发送由证书生存期事件触发的通知。 Key Vault 中的所有证书共享联系人信息。

如果保管库中的任何证书发生事件,所有指定联系人都会收到通知。 有关如何设置证书联系人的信息,请参阅续订 Azure Key Vault 证书

证书访问控制

Key Vault 管理证书访问控制。 包含这些证书的 Key Vault 提供访问控制。 在同一 Key Vault 中,证书的访问控制策略不同于密钥和机密的访问控制策略。

用户可以创建一个或多个保管库来保存证书,以维护方案相应的证书分段和管理。 有关详细信息,请参阅证书访问控制

证书用例

安全通信和身份验证

TLS 证书有助于对 Internet 上的通信进行加密,并建立网站的标识。 这种加密可以加强对通信的入口点和模式的保护。 此外,由公共 CA 签名的链式证书有助于验证持有证书的实体是否合法。

例如,以下是使用证书来保护通信并支持身份验证的一些用例:

  • Intranet/Internet 网站:保护对 Intranet 站点的访问,并确保使用 TLS 证书通过 Internet 传输加密的数据。
  • IoT 和网络设备:通过使用证书进行身份验证和通信来保护设备。
  • 云/多云:在本地、跨云或云提供商的租户中保护基于云的应用程序。

代码签名

证书可帮助保护软件的代码/脚本,从而确保作者可以通过 Internet 共享软件,而不受恶意实体干扰。 在作者使用证书并利用代码签名技术对代码进行签名后,软件就会标记显示作者及其网站的身份验证戳。 代码签名中使用的证书有助于验证软件的真实性,并提升端到端安全性。

后续步骤