管理证书、机密和密钥
Azure 密钥保管库证书支持适用于 X.509 证书管理,它提供以下行为:
- 允许证书所有者通过密钥保管库创建过程或通过导入现有证书来创建证书。 导入的证书包括自签名证书和证书颁发机构 (CA) 生成的证书。
- 允许密钥保管库证书所有者在不与私钥材料交互的情况下实现 X.509 证书的安全存储和管理。
- 允许证书所有者创建策略来指示密钥保管库如何管理证书的生命周期。
- 允许证书所有者提供联系信息用于接收有关证书过期和续订生命周期事件的通知。
- 支持在选定的颁发者处自动续订:密钥保管库合作伙伴 X.509 证书提供者和 CA。
证书的组成部分
创建 Key Vault 证书后,还可以创建具有相同名称的可寻址密钥和机密。 密钥保管库密钥允许密钥操作,密钥保管库机密允许将证书值检索为机密。 密钥保管库证书还包含公共 X.509 证书元数据。
证书的标识符和版本与密钥和机密的类似。 使用 Key Vault 证书版本创建的特定版本的可寻址密钥和机密可用于 Key Vault 证书响应。
可导出或不可导出的密钥
创建 Key Vault 证书后,可以使用 PFX 或 PEM 格式的私钥从可寻址机密中检索该证书。 用于创建证书的策略必须指示密钥可导出。 如果策略指示密钥不可导出,则在作为机密检索私钥时,该私钥不包括在值中。
使用不可导出的 Key Vault 证书时,可寻址密钥变得更相关。 可寻址密钥保管库密钥的操作从用于创建密钥保管库证书的密钥保管库证书策略的 keyusage 字段进行映射。
下表列出了支持的密钥类型。
key 类型 | 关于 | 安全性 |
---|---|---|
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 |
八进制数 | 受软件保护的八进制密钥 | FIPS 140-2 级别 1 |
仅 RSA 和 EC 允许可导出密钥。 HSM 密钥不可导出。
证书属性和标记
除了证书元数据、可寻址密钥和可寻址机密外,密钥保管库证书还包含属性和标记。
属性
证书属性将镜像到创建密钥保管库证书时创建的可寻址密钥和机密的属性。
密钥保管库证书具有以下属性:
enabled:此 Boolean 属性是可选的。 默认值为 true。 可以指定此属性,以指示证书数据是否可以作为机密进行检索,或者可以作为密钥进行操作。
- 在 nbf 和 exp 之间执行操作时,此属性还可与 nbf 和 exp 一起使用,仅当该“enabled”设置为 true 时才允许这样做。 nbf 和 exp 时段外的操作会自动禁止。
响应包含以下附加只读属性:
- created:IntDate 指示创建此版本的证书的时间。
- updated:IntDate 指示更新此版本的证书的时间。
- exp:IntDate 包含 X.509 证书的过期日期的值。
- nbf:IntDate 包含 X.509 证书的生效日期的值。
注意
Key Vault 证书即使过期也仍然可以被检索到,但在验证证书是否过期的传输层安全性保护等场景中,证书可能会变得不可操作。
标记
证书的标记是客户端指定的键/值对字典,非常类似于密钥和机密中的标记。
注意
如果调用方具有该对象类型(密钥、机密或证书)的列出或获取权限,则调用方可读取标记。
证书策略
证书策略包含有关如何创建和管理密钥保管库证书生命周期的信息。 将具有私钥的证书导入密钥保管库时,密钥保管库服务将通过读取 X.509 证书创建一个默认策略。
从零开始创建 Key Vault 证书时,需要提供策略。 该策略指定如何创建此密钥保管库证书版本或下一个密钥保管库证书版本。 建立策略后,便不需要使用连续创建操作创建将来的版本。 所有版本的 Key Vault 证书只有一个策略实例。
在高级别,证书策略包含以下信息:
X.509 证书属性,包括使用者名称、使用者备用名称以及用于创建 X.509 证书请求的其他属性。
键属性,包括密钥类型、密钥长度、可导出字段和
ReuseKeyOnRenewal
字段。 这些字段指示密钥保管库如何生成密钥。- 支持的密钥类型为 RSA、RSA-HSM、EC、EC、EC-HSM 和 octet。
机密属性,例如可寻址机密的内容类型,用于生成机密值以将证书作为机密检索。
密钥保管库证书的生存期操作。 每个生存期操作包含:
触发器:指定为过期前的天数或剩余生存期百分比。
操作:
emailContacts
或autoRenew
。证书验证类型:针对 DigiCert 和 GlobalSign 颁发者的组织验证型(组织验证型-安全套接字层)和扩展验证(扩展验证-安全套接字层)。
有关用于颁发 X.509 证书的证书颁发者的参数。
与策略关联的属性。
将 X.509 用法映射到密钥操作
下表表示 X.509 密钥用法策略映射到在创建密钥保管库证书过程中创建的密钥的有效密钥操作。
X.509 密钥使用情况标记 | Key Vault 密钥操作 | 默认行为 |
---|---|---|
DataEncipherment | 加密、解密 | 不适用 |
DecipherOnly | decrypt | 不适用 |
DigitalSignature | 签名、验证 | Key Vault 在创建证书时默认为无使用规范 |
EncipherOnly | 加密 | 不适用 |
KeyCertSign | 签名、验证 | 不适用 |
KeyEncipherment | 包装密钥、解包密钥 | Key Vault 在创建证书时默认为无使用规范 |
NonRepudiation | 签名、验证 | 不适用 |
crlsign | 签名、验证 | 不适用 |
证书颁发者
密钥保管库证书对象包含与所选证书颁发者提供者进行通信的配置以订购 X.509 证书。
Key Vault 与以下证书颁发者提供商合作以提供传输层安全性/安全套接字层证书。
提供程序名称 | 位置 |
---|---|
DigiCert | 公有云和 Azure 政府中的所有 Key Vault 服务位置均支持 |
GlobalSign | 公有云和 Azure 政府中的所有 Key Vault 服务位置均支持 |
在 Key Vault 中创建证书颁发者之前,管理员必须执行以下先决条件步骤:
- 加入至少具有一个 CA 提供者的组织。
- 为 Key Vault 创建请求者凭据以注册(和续订)传输层安全性/安全套接字层证书。 此步骤提供用于在密钥保管库中创建提供者颁发者对象的配置。
密钥保管库允许使用其他颁发者提供者的配置创建多个颁发者对象。 创建颁发者对象后,可以在一个或多个证书的策略中引用其名称。 在创建和续订证书的过程中从 CA 提供者请求 X.509 证书时,引用颁发者对象可以指示密钥保管库按颁发者对象中的规定使用配置。
颁发者对象是在保管库中创建的。 它们只能与同一保管库中的密钥保管库证书一起使用。
证书联系人
证书联系人包含用于发送证书生存期事件触发的通知的联系人信息。 密钥保管库中的所有证书共享这些联系人信息。
如果保管库中的任何证书发生事件,所有指定联系人都会收到通知。
证书访问控制
密钥保管库管理证书的访问控制。 包含这些证书的密钥保管库提供访问控制。 针对证书的访问控制策略不同于针对同一密钥保管库中密钥和机密的访问控制策略。
用户可以创建一个或多个保管库来保存证书,以维护适用于方案的证书分段和管理。
证书用例
安全通信和身份验证
传输层安全性证书有助于通过 Internet 加密通信并建立网站标识。 这种加密可以提高入口点和通信模式的安全性。 此外,由公共 CA 签名的链式证书可以帮助验证持有证书的实体是否合法。
例如,下面是使用证书来保护通信和实现身份验证的一些用例:
- Intranet/Internet 网站:保护对 Intranet 站点的访问,并确保通过传输层安全性证书通过 Internet 进行加密数据传输。
- IoT 和网络设备:通过使用证书进行身份验证和通信来保护设备。
- 云/多云方案:保护本地、跨云或云提供商租户中的基于云的应用程序。
代码签名
证书可帮助保护软件的代码/脚本,以确保作者可以通过 Internet 共享软件,而不会受到恶意实体的干扰。 在作者使用证书并利用代码签名技术对代码进行签名后,软件将标有一个身份验证戳记,其中会显示作者及其网站。 代码签名中使用的证书有助于验证软件的真实性,并提升端到端安全性。