第 18 章 管理子系统证书
本章概述了使用证书:可以使用哪些类型和格式,如何通过 HTML 端点表单和证书系统控制台来请求和创建它们,以及如何在证书系统和不同的客户端中安装证书。另外,还有有关通过控制台管理证书的信息,并将服务器配置为使用它们。
18.1. 所需的子系统证书
每个子系统都有一组定义的证书,这些证书必须发布到子系统实例,才能执行操作。证书管理器配置过程中设置的证书内容的详情,根据证书类型的不同注意事项、设置和属性;规划 Red Hat Certificate System 规划、安装和部署指南中 涵盖证书的格式。
18.1.1. 证书管理器证书
安装证书管理器后,会生成 CA 签名证书、SSL 服务器证书和 OCSP 签名证书的密钥和请求。证书在配置完成之前创建。
CA 证书请求作为自签名请求提交给 CA,然后签发证书并完成创建自签名 root CA,或者提交到第三方公共 CA 或其他证书系统 CA。当外部 CA 返回证书时,证书会被安装,并且完成从属 CA 的安装。
18.1.1.1. CA 签名密钥对和证书
每个证书管理器都有一个 CA 签名证书,其与证书管理器用来为证书签名的私钥对应的公钥对应。在安装证书管理器时,会创建并安装此证书。证书的默认 nickname 是 caSigningCert cert-instance_ID CA
,其中 instance_ID 标识证书管理器实例。证书的默认有效期为五年。
CA 签名证书的主题名称反映了在安装过程中设置的 CA 的名称。证书管理器签名或签发的所有证书都包含此名称来标识证书的签发者。
证书管理器的状态作为根或下级 CA 决定,由其 CA 签名证书是自签名还是由另一个 CA 签名,这会影响证书上的主题名称。
- 如果证书管理器是 root CA,则其 CA 签名证书是自签名的,这意味着证书的主题名称和签发者名称相同。
- 如果证书管理器是从属 CA,其 CA 签名证书由另一个 CA 签名,通常是 CA 层次结构上面的级别(可能或可能不是 root CA)。root CA 的签名证书必须导入到单独的客户端和服务器中,然后才能使用证书管理器向它们发布证书。
无法更改 CA 名称,或者所有之前发布的证书都无效。同样,使用新密钥对恢复 CA 签名证书会导致旧密钥对的所有证书无效。
18.1.1.2. OCSP 签名密钥对和证书
OCSP 签名证书的主题名称采用 cn=OCSP cert-instance_ID CA
的形式,它包含扩展,如 OCSP
Sign 和 OCSPNoCheck
,用于签名 OCSP 响应。
OCSP 签名证书的默认 nickname 是 ocspSigningCert cert-instance_ID CA
,其中 instance_ID CA 标识证书管理器实例。
在查询证书撤销状态时,证书管理器会使用 OCSP 签名证书的公钥的 OCSP 私钥,为与 OCSP 兼容的客户端签署 OCSP 响应。
18.1.1.3. 子系统证书
安全域的每个成员都会发布一个服务器证书,用于与其他域成员之间的通信,后者与服务器 SSL 证书分开。此证书由安全域 CA 签名;对于安全域 CA 本身,其子系统证书由自身签名。
证书的默认 nickname 是 subsystemCert cert-instance_ID
。
18.1.1.4. SSL 服务器密钥对和证书
每个证书管理器至少有一个 SSL 服务器证书是在安装证书管理器时首次生成的。证书的默认 nickname 是 Server-Cert cert-instance_ID
,其中 instance_ID 标识证书管理器实例。
默认情况下,证书管理器使用单个 SSL 服务器证书进行身份验证。但是,可以请求额外的服务器证书来用于不同的操作,如将证书管理器配置为使用单独的服务器证书对最终用户服务接口和代理服务接口进行身份验证。
如果为启用了 SSL 的发布目录通信配置了证书管理器,它将默认使用其 SSL 服务器证书进行客户端身份验证到发布目录。证书管理器也可以配置为使用其他证书进行 SSL 客户端身份验证。
18.1.1.5. 审计日志签名密钥对和证书
CA 保留服务器上发生的所有事件的安全审计日志。为确保审计日志未被篡改,日志文件由特殊的日志签名证书签名。
在第一次配置服务器时,会发布审计日志签名证书。
虽然其他证书可以使用 ECC 密钥,但审计签名证书 必须始终 使用 RSA 密钥。
18.1.2. 在线证书状态管理器证书
首次配置在线证书状态管理器后,会创建所有必需的证书的密钥,以及 OCSP 签名、SSL 服务器、审计日志签名和子系统证书的证书请求。这些证书请求提交到 CA (证书系统 CA 或第三方 CA),且必须安装在在线证书状态管理器数据库中来完成配置过程。
18.1.2.1. OCSP 签名密钥对和证书
每个在线证书状态管理器都有一个证书 OCSP 签名证书,该证书与在线证书状态管理器用来签署 OCSP 响应的私钥对应。在线证书状态管理器的签名提供在线证书状态管理器已处理请求的持久验证。当配置了在线证书状态管理器时,会生成此证书。证书的默认 nickname 是 ocspSigningCert cert-instance_ID
,其中 instance_ID OSCP 是 Online Certificate Status Manager 实例名称。
18.1.2.2. SSL 服务器密钥对和证书
每个在线证书状态管理器至少有一个 SSL 服务器证书,该证书是在配置在线证书状态管理器时生成的。证书的默认 nickname 是 Server-Cert cert-instance_ID
,其中 instance_ID 标识在线证书 Status Manager 实例名称。
Online 证书状态管理器将其服务器证书用于在线证书状态管理器代理服务页面的服务器端身份验证。
在线证书状态管理器使用单一服务器证书进行身份验证。可以安装其他服务器证书并用于不同的目的。
18.1.2.3. 子系统证书
安全域的每个成员都会发布一个服务器证书,用于与其他域成员之间的通信,后者与服务器 SSL 证书分开。此证书由安全域 CA 签名。
证书的默认 nickname 是 subsystemCert cert-instance_ID
。
18.1.2.4. 审计日志签名密钥对和证书
OCSP 保留服务器上发生的所有事件的安全审计日志。为确保审计日志未被篡改,日志文件由特殊的日志签名证书签名。
在第一次配置服务器时,会发布审计日志签名证书。
虽然其他证书可以使用 ECC 密钥,但审计签名证书 必须始终 使用 RSA 密钥。
18.1.2.5. 识别在线证书状态管理器证书
根据签署了在线证书状态管理器的 SSL 服务器证书的 CA,可能需要获取证书并签发由证书管理器识别的 CA。
- 如果在线证书状态管理器的服务器证书由发布 CRL 的 CA 签名,则不需要进行任何操作。
- 如果在线证书状态管理器的服务器证书由签署从属证书管理器的证书相同的 root CA 签名,则 root CA 必须在从属证书管理器的证书数据库中被标记为可信 CA。
- 如果在线证书状态管理器的 SSL 服务器证书由不同的 root CA 签名,则必须将 root CA 证书导入到从属证书管理器的证书数据库并标记为可信 CA。
如果在线证书状态管理器的服务器证书由所选安全域中的 CA 签名,则当配置在线证书状态管理器时,会导入并标记证书链。不需要其他配置。但是,如果服务器证书由外部 CA 签名,则必须导入证书链才能完成配置。
在配置时 OCSP Manager 会自动信任安全域中的每个 CA。CA 面板中配置的 CA 证书链中的每个 CA 都是,但由 OCSP Manager 自动信任。安全域中的其他 CA,但不能在证书链中手动添加。
18.1.3. 密钥恢复授权授权证书
KRA 使用以下密钥对和证书:
18.1.3.1. 传输密钥对和证书
每个 KRA 都有一个传输证书。用于生成传输证书的密钥对的公钥供客户端软件用来加密最终实体的私钥,然后再将其发送到 KRA 以进行存档;只有那些能够生成双密钥对的客户端使用传输证书。
18.1.3.2. 存储密钥对
每个 KRA 都有存储密钥对。KRA 使用此密钥对的公钥组件在归档密钥时加密(或嵌套)私钥。它使用私有组件在恢复过程中解密(或取消包装)归档的密钥。有关如何使用这个密钥对的详情请参考 第 4 章 设置密钥归档和恢复。
使用存储密钥加密的密钥只能由授权密钥恢复代理来检索。
18.1.3.3. SSL 服务器证书
每个证书系统 KRA 至少有一个 SSL 服务器证书。配置 KRA 时会生成第一个 SSL 服务器证书。证书的默认 nickname 是 Server-Cert cert-instance_ID
,其中 instance_id 标识已安装 KRA 实例。
KRA 的 SSL 服务器证书由提交证书请求的 CA 发布,可以是证书系统 CA 或第三方 CA。要查看签发者名称,请在 KRA 控制台中的 System Keys 和 Certificates 选项中打开证书详情。
KRA 使用其 SSL 服务器证书对 KRA 代理服务接口进行服务器端身份验证。默认情况下,密钥恢复授权使用单个 SSL 服务器证书进行身份验证。但是,可以为 KRA 请求并安装额外的 SSL 服务器证书。
18.1.3.4. 子系统证书
安全域的每个成员都会发布一个服务器证书,用于与其他域成员之间的通信,后者与服务器 SSL 证书分开。此证书由安全域 CA 签名。
证书的默认 nickname 是 subsystemCert cert-instance_ID
。
18.1.3.5. 审计日志签名密钥对和证书
KRA 保留服务器上发生的所有事件的安全审计日志。为确保审计日志未被篡改,日志文件由特殊的日志签名证书签名。
在第一次配置服务器时,会发布审计日志签名证书。
虽然其他证书可以使用 ECC 密钥,但审计签名证书 必须始终 使用 RSA 密钥。
18.1.4. TKS 证书
TKS 有三个证书。SSL 服务器和子系统证书用于标准操作。额外的签名证书用于保护审计日志。
18.1.4.1. SSL 服务器证书
每个证书系统 TKS 至少有一个 SSL 服务器证书。配置 TKS 时会生成第一个 SSL 服务器证书。证书的默认 nickname 是 Server-Cert cert-instance_ID
。
18.1.4.2. 子系统证书
安全域的每个成员都会发布一个服务器证书,用于与其他域成员之间的通信,后者与服务器 SSL 证书分开。此证书由安全域 CA 签名。
证书的默认 nickname 是 subsystemCert cert-instance_ID
。
18.1.4.3. 审计日志签名密钥对和证书
TKS 保留服务器上发生的所有事件的安全审计日志。为确保审计日志未被篡改,日志文件由特殊的日志签名证书签名。
在第一次配置服务器时,会发布审计日志签名证书。
虽然其他证书可以使用 ECC 密钥,但审计签名证书 必须始终 使用 RSA 密钥。
18.1.5. TPS 证书
TPS 仅使用三个证书:服务器证书、子系统证书和审计日志签名证书。
18.1.5.1. SSL 服务器证书
每个证书系统 TPS 至少有一个 SSL 服务器证书。配置 TPS 时会生成第一个 SSL 服务器证书。证书的默认 nickname 是 Server-Cert cert-instance_ID
。
18.1.5.2. 子系统证书
安全域的每个成员都会发布一个服务器证书,用于与其他域成员之间的通信,后者与服务器 SSL 证书分开。此证书由安全域 CA 签名。
证书的默认 nickname 是 subsystemCert cert-instance_ID
。
18.1.5.3. 审计日志签名密钥对和证书
TPS 保留服务器上发生的所有事件的安全审计日志。为确保审计日志未被篡改,日志文件由特殊的日志签名证书签名。
在第一次配置服务器时,会发布审计日志签名证书。
18.1.6. 关于子系统证书密钥类型
创建新实例时,您可以在传递给 pkispawn
工具的配置文件中指定密钥类型和密钥大小。
例 18.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
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
Copy to clipboardCopied示例中的值适用于 CA。其他子系统需要不同的参数。
如需了解更多详细信息,请参阅:
- Red Hat Certificate System 规划、安装和部署指南中的 了解 pkispawn 实用程序 部分。
-
pki_default.cfg (5)
手册页以了解参数和示例。
18.1.7. 使用 HSM 存储子系统证书
默认情况下,密钥和证书分别存储在本地管理的数据库、key4.db
和 cert9.db
中,分别存储在 /var/lib/pki/ instance_name/alias
目录中。但是,红帽认证系统还支持硬件安全模块(HSM),外部设备可将密钥和证书存储在网络上的集中位置。使用 HSM 可使一些功能(如克隆)变得更加容易,因为实例的密钥和证书可以被只读访问。
当使用 HSM 来存储证书时,HSM 名称将添加到证书 nickname 的前面,并在子系统配置(如 server.xml
文件)中使用全名。例如:
serverCert="nethsm:Server-Cert cert-instance_ID
serverCert="nethsm:Server-Cert cert-instance_ID
Copy to clipboardCopied单个 HSM 可用于存储 mulitple 子系统实例的证书和密钥,这些实例可能安装到多个主机上。使用 HSM 时,子系统的任何证书 nickname 都必须对 HSM 上管理的每个子系统实例都是唯一的。
证书系统支持两种类型的 HSM、nCipher netHSM 和 Chrysalis LunaSA。