第 16 章 管理子系统证书
本章概述了使用证书:哪些类型和格式可用,如何通过 HTML 最终用户形式来请求和创建它们,并通过证书证书系统nbsp 并通过证书证书系统及证书控制台(System Console)在证书证书系统中安装证书,以及如何在不同客户端上安装证书。另外,还有通过控制台管理证书以及配置服务器以使用它们的信息。
16.1. 所需的 子系统证书
每个子系统都有一组定义的证书,必须发布到子系统实例,以便它执行操作。在证书管理器配置期间设置某些证书内容的详情,根据证书类型限制、设置和属性的不同考虑;规划证书格式包括在 Red Hat Certificate System 9 Planning、Installing and Deployment Guide 中。
16.1.1. 证书管理器证书
安装证书管理器时,将生成 CA 签名证书、SSL 服务器证书和 OCSP 签名证书的密钥和请求。证书会在配置完成前创建。
CA 证书请求可作为自签名请求提交给 CA,然后发布证书并完成创建自签名 root CA,或提交至第三方公共 CA 或其他证书证书系统nbsp;System CA。当外部 CA 返回证书时,会安装证书并安装从属 CA。
16.1.1.1. CA 签名密钥对和证书
每个证书管理器都有一个 CA 签名证书,其公钥对应于证书管理器用来为证书和 CRL 证书签名。安装证书管理器时会创建并安装此证书。证书的默认 nickname 是 caSigningCert-instance_ID CA,其中 instance_ID 标识证书管理器实例。证书的默认有效期期是五年。
CA 签名证书的主题名称反映了在安装过程中设置的 CA 名称。证书管理器签名或发布的所有证书均包括此名称来识别证书的签发者。
证书管理器的状态是作为 root 或从属 CA 的状态,由其 CA 签名证书是自签名还是由另一个 CA 签名,后者会影响证书上的主题名称。
- 如果证书管理器是 root CA,则其 CA 签名证书是自签名的,即证书的主题名称和签发者名称相同。
- 如果证书管理器是从属 CA,则其 CA 签名证书由另一个 CA 签名,通常是位于 CA 层次结构的级别(可能或不能是 root CA)中的级别。root CA 的签名证书必须导入到单独的客户端和服务器中,然后才能使用证书管理器向它们发布证书。
注意
无法更改 CA 名称,或者之前发布的所有证书都无效。同样,使用新密钥对退出 CA 签名证书,使所有由旧密钥对签名的证书无效。
16.1.1.2. OCSP 签名密钥对和证书
OCSP 签名证书的主题名称格式为 cn=OCSP cert-instance_ID CA,它包含扩展,如 OCSPSigning 和 OCSPNoCheck,在签名 OCSP 响应时需要。
OCSP 私钥(与 OCSP 签名证书的公钥)用于在查询证书撤销状态时,为与 OCSP 兼容的客户端签名。
16.1.1.3. 子系统证书
安全域的每个成员都发出一个服务器证书,用于其他域成员之间的通信,该证书与服务器 SSL 证书分开。此证书由安全域 CA 签名;对于安全域 CA,其子系统证书由自身签名。
证书的默认 nickname 是 subsystemCert cert-instance_ID。
16.1.1.4. SSL 服务器密钥对和证书
每个证书管理器至少包含一个 SSL 服务器证书,这是在安装证书管理器时首次生成的 SSL 服务器证书。证书的默认 nickname 是 Server-Cert cert-instance_ID,其中 instance_ID 标识证书管理器实例。
默认情况下,证书管理器使用单个 SSL 服务器证书进行身份验证。但是,可以为不同的操作请求额外的服务器证书,比如将证书管理器配置为使用单独的服务器证书来向最终用户接口和代理服务接口进行身份验证。
如果为启用了 SSL 的 SSL 通讯配置了证书管理器,则默认情况下,它使用其 SSL 服务器证书来向发布目录进行客户端身份验证。证书管理器也可以配置为使用其他证书进行 SSL 客户端身份验证。
16.1.1.5. 审计日志签名密钥对和证书
CA 保留服务器发生的所有事件的安全审计日志。为保证审计日志未被篡改,该日志文件由特殊日志签名证书签名。
第一次配置服务器时会发出审计日志签名证书。
注意
虽然其他证书可以使用 ECC 密钥,但审计签名证书 必须始终 使用 RSA 密钥。
16.1.2. 在线证书状态管理器证书
首次配置在线证书状态管理器时,会创建所有所需证书的密钥,以及对 OCSP 签名、SSL 服务器、审计日志签名和子系统证书的证书请求。这些证书请求将提交到 CA(证书证书系统侦听;System CA 或第三方 CA),且必须在在线证书状态管理器数据库中安装,以完成配置过程。
16.1.2.1. OCSP 签名密钥对和证书
16.1.2.2. SSL 服务器密钥对和证书
每个在线证书状态管理器都至少有一个 SSL 服务器证书,该证书在配置了在线证书状态管理器时生成。证书的默认 nickname 是 Server-Cert cert-instance_ID,其中 instance_ID 标识在线证书状态管理器实例名称。
Online Certificate Status Manager 使用其服务器证书进行在线证书状态代理服务页面的服务器端身份验证。
在线证书状态管理器使用单一服务器证书进行验证。可以安装其他服务器证书并将其用于不同的目的。
16.1.2.3. 子系统证书
安全域的每个成员都发出一个服务器证书,用于其他域成员之间的通信,该证书与服务器 SSL 证书分开。此证书由安全域 CA 签名。
证书的默认 nickname 是 subsystemCert cert-instance_ID。
16.1.2.4. 审计日志签名密钥对和证书
OCSP 保留服务器发生的所有事件的安全审计日志。为保证审计日志未被篡改,该日志文件由特殊日志签名证书签名。
第一次配置服务器时会发出审计日志签名证书。
注意
虽然其他证书可以使用 ECC 密钥,但审计签名证书 必须始终 使用 RSA 密钥。
16.1.2.5. 识别在线证书状态管理器证书
根据为在线证书状态管理器 SSL 服务器证书签名的 CA,可能需要获取证书并发布由证书管理器识别的 CA。
- 如果在线证书 Status Manager 的服务器证书由发布 CRL 的 CA 签名,则不需要进行任何操作。
- 如果在线证书状态管理器的服务器证书由签署从属证书管理器证书的同一 root CA 签名,那么 root CA 必须在从属证书管理器的证书数据库中被标记为可信 CA。
- 如果在线证书状态管理器的 SSL 服务器证书由不同的 root CA 签名,则必须将 root CA 证书导入到从属证书管理器的证书数据库中并标记为可信 CA。
如果在线证书状态管理器的服务器证书由所选安全域中的 CA 签名,则会导入证书链,并在配置在线证书 Status Manager 时标记。不需要其他配置。但是,如果服务器证书由外部 CA 签名,则必须导入证书链,以便完成配置。
注意
在配置了 OCSP Manager 时,不是安全域中的每个 CA 会自动被 OCSP Manager 信任。CA 面板中配置的 CA 证书链中的每个 CA 都是 OCSP Manager 自动信任的。安全域中的其他 CA,但必须在证书链中手动添加。
16.1.3. 密钥恢复授权证书
16.1.3.1. 传输密钥对和证书
16.1.3.2. 存储密钥对
每个 KRA 都有一个存储密钥对。 KRA 使用此密钥对的公钥在存档密钥时加密(或嵌套)私钥。它使用私有组件在恢复过程中解密(或取消包装)归档的密钥。有关使用此密钥对的更多信息,请参阅 第 4 章 设置密钥存档和恢复。
使用存储密钥加密的密钥只能被授权密钥恢复代理检索。
16.1.3.3. SSL 服务器证书
每个证书证书系统侦听;系统 KRA 至少有一个 SSL 服务器证书。配置 KRA 时会生成一个第一个 SSL 服务器证书。证书的默认 nickname 是 Server-Cert cert-instance_ID,其中 instance_id 标识 KRA 实例。
KRA 的 SSL 服务器证书由提交证书请求的 CA 发布,该证书可以是证书证书系统nbsp;System CA 或第三方 CA。要查看签发者名称,请在 KRA Console 中的 System Keys 和 Certificates 选项中打开证书详情。
KRA 使用其 SSL 服务器证书进行服务器端身份验证到 KRA 代理服务接口。默认情况下,密钥恢复授权使用单个 SSL 服务器证书进行验证。但是,可以为 KRA 请求并安装额外的 SSL 服务器证书。
16.1.3.4. 子系统证书
安全域的每个成员都发出一个服务器证书,用于其他域成员之间的通信,该证书与服务器 SSL 证书分开。此证书由安全域 CA 签名。
证书的默认 nickname 是 subsystemCert cert-instance_ID。
16.1.3.5. 审计日志签名密钥对和证书
KRA 保留服务器发生的所有事件的安全审计日志。为保证审计日志未被篡改,该日志文件由特殊日志签名证书签名。
第一次配置服务器时会发出审计日志签名证书。
注意
虽然其他证书可以使用 ECC 密钥,但审计签名证书 必须始终 使用 RSA 密钥。
16.1.4. TKS 证书
TKS 有三个证书。SSL 服务器和子系统证书用于标准操作。额外的签名证书用于保护审计日志。
16.1.4.1. SSL 服务器证书
每个证书证书系统启动;系统 TKS 至少有一个 SSL 服务器证书。配置 TKS 时会生成第一个 SSL 服务器证书。证书的默认 nickname 是 Server-Cert cert-instance_ID。
16.1.4.2. 子系统证书
安全域的每个成员都发出一个服务器证书,用于其他域成员之间的通信,该证书与服务器 SSL 证书分开。此证书由安全域 CA 签名。
证书的默认 nickname 是 subsystemCert cert-instance_ID。
16.1.4.3. 审计日志签名密钥对和证书
TKS 保留服务器发生的所有事件的安全审计日志。为保证审计日志未被篡改,该日志文件由特殊日志签名证书签名。
第一次配置服务器时会发出审计日志签名证书。
注意
虽然其他证书可以使用 ECC 密钥,但审计签名证书 必须始终 使用 RSA 密钥。
16.1.5. TPS 证书
TPS 仅使用三个证书:服务器证书、子系统证书和审计日志签名证书。
16.1.5.1. SSL 服务器证书
每个证书证书系统nbsp;System TPS 至少一个 SSL 服务器证书。配置 TPS 时生成第一个 SSL 服务器证书。证书的默认 nickname 是 Server-Cert cert-instance_ID。
16.1.5.2. 子系统证书
安全域的每个成员都发出一个服务器证书,用于其他域成员之间的通信,该证书与服务器 SSL 证书分开。此证书由安全域 CA 签名。
证书的默认 nickname 是 subsystemCert cert-instance_ID。
16.1.5.3. 审计日志签名密钥对和证书
TPS 保留服务器发生的所有事件的安全审计日志。为保证审计日志未被篡改,该日志文件由特殊日志签名证书签名。
第一次配置服务器时会发出审计日志签名证书。
16.1.6. 关于 subsystem 证书和密钥类型
在创建新实例时,您可以在传递到
pkispawn
实用程序的配置文件中指定密钥类型和密钥大小。
例 16.1. CA 的密钥类型相关配置参数
以下是类型与关键相关的参数,包括示例值。您可以在配置文件中设置这些参数,您可以在创建新 CA 时传递给
pkispawn
。
pki_ocsp_signing_key_algorithm=SHA256withRSA pki_ocsp_signing_key_size=2048 pki_ocsp_signing_key_type=rsa pki_ca_signing_key_algorithm=SHA256withRSA pki_ca_signing_key_size=2048 pki_ca_signing_key_type=rsa pki_sslserver_key_algorithm=SHA256withRSA pki_sslserver_key_size=2048 pki_sslserver_key_type=rsa pki_subsystem_key_algorithm=SHA256withRSA pki_subsystem_key_size=2048 pki_subsystem_key_type=rsa pki_admin_keysize=2048 pki_admin_key_size=2048 pki_admin_key_type=rsa pki_audit_signing_key_algorithm=SHA256withRSA pki_audit_signing_key_size=2048 pki_audit_signing_key_type=rsa
注意
示例中的值适用于 CA。其他子系统需要不同的参数。
如需了解更多详细信息,请参阅:
- 红帽证书系统规划、安装和部署指南中的 了解
pkispawn
实用程序 部分。 - pki_default.cfg(5) man page 了解参数和示例的描述。
16.1.7. 使用 HSM 存储子系统证书
默认情况下,密钥和证书保存在本地管理的数据库中,分别为
key3.db
和 cert8.db
,在 /var/lib/pki/instance_name/alias
目录中。但是,Red Hat Certificate Systemnbsp;Hat Certificate Red Hat Certificate Systemnbsp;System 还支持硬件安全模块(HSM),可以在网络上集中存储密钥和证书的外部设备。使用 HSM 可以使一些功能(如克隆)变得容易,因为实例的密钥和证书可以被轻松访问。
当使用 HSM 存储证书时,HSM 名称会加上证书 nickname 的前面,并在子系统配置中使用完整名称,如
server.xml
文件。例如:
serverCert="nethsm:Server-Cert cert-instance_ID
注意
单个 HSM 可用于存储可在多个主机上安装的 mulitple 子系统实例的证书和密钥。使用 HSM 时,每个子系统的证书 nickname 都必须对 HSM 上管理的每个子系统实例是唯一的。
CertificateCertificate Systemnbsp;System 支持两种类型的 HSM,NCipher netHSM 和 Chrysalis LunaSA。