7.7. 两步安装

要在安装过程中自定义某些配置参数,需要用两个步骤执行安装过程,并在它们之间进行配置。为此,pkispawn 工具可让您在两个步骤中运行子系统的安装。

7.7.1. 何时使用双步安装

在以下情况下使用两步安装:
  • 提高安全性。
  • 自定义子系统证书。
  • 在安装要连接到现有证书系统的新证书系统实例时,自定义 /etc/pki/instance_name/server.xml 文件中的 sslRangeCiphers 参数中的 cipher 列表。
  • 在 FIPS 模式中安装 CA 克隆、KRA、OCSP、TKS 和 TPS。
  • 在 FIPS 模式下使用硬件安全模块(HSM)安装证书系统。

7.7.2. 这两个步骤安装的主要部分

两步安装由以下两个主要部分组成:
  1. 安装
    在这一步中,pkispawn 将配置文件从 /usr/share/pki/ 目录复制到特定于实例的 /etc/pki/instance_name/ 目录。另外,pkispawn 根据部署配置文件中定义的值设置。
    这个安装部分包含以下子步骤:
  2. Configuration
    在这一步中,pkispawn 根据特定于实例的 /etc/pki/instance_name/ 目录中的配置文件继续安装。
    这个安装部分包含以下子步骤:

7.7.3. 为安装的第一个步骤创建配置文件

为配置设置创建一个文本文件,如 /root/config.txt,并使用下面描述的设置填充它。
重要
本节论述了在与证书系统相同的主机上运行的 Directory 服务器的最低配置。根据您的环境,可能需要其他参数。有关其他示例,请参阅 pkispawn(8) man page 中的 EXAMPLES 部分。
有关本部分涵盖参数的描述,请查看 pki_default.cfg(5) man page。

独立于子系统的设置

独立于您安装的子系统,配置文件中需要以下设置:
  1. 设置证书系统 admin 用户的密码、PKCS TOTP 文件和目录服务器:
    [DEFAULT]
    pki_admin_password=password
    pki_client_pkcs12_password=password
    pki_ds_password=password
  2. 要使用到在同一主机上运行的目录服务器的 LDAPS 连接,请在配置文件中的 [DEFAULT] 部分添加以下参数:
    pki_ds_secure_connection=True
    pki_ds_secure_connection_ca_pem_file=path_to_CA_or_self-signed_certificate
    注意
    为了安全起见,红帽建议使用到目录服务器的加密连接。
    如果您在目录服务器中使用自签名证书,请使用以下命令从目录服务器的网络安全服务(NSS)数据库中导出它:
    # certutil -L -d /etc/dirsrv/slapd-instance_name/ \
         -n "server-cert" -a -o /root/ds.crt
重要
默认情况下,证书系统在安装后删除 ~/.dogtag/instance_name/子系统/alias 客户端数据库。为了安全起见,红帽建议在配置文件中启用 pki_client_database_purge 参数。如果手动将此参数设置为 True,则证书系统在安装后不会删除客户端数据库。
创建初始配置文件后,向其中添加特定于子系统的设置。请参阅:

CA 设置

除了 “独立于子系统的设置”一节 外,还需要以下设置来安装 CA:
  1. 要提高安全性,请通过在配置文件中添加 [CA] 部分来启用随机序列号:
    [CA]
    pki_random_serial_numbers_enable=true
  2. 另外,还可在 [CA] 部分中设置以下参数,以指定 admin 用户的数据,这将在安装过程中自动创建:
    pki_admin_nickname=caadmin
    pki_admin_name=CA administrator account
    pki_admin_password=password
    pki_admin_uid=caadmin
    pki_admin_email=caadmin@example.com
    证书系统为这个帐户分配管理员特权。安装后使用此帐户来管理证书系统并创建更多用户帐户。
  3. 要启用证书系统生成唯一的 nickname,请在 [DEFAULT] 部分中设置以下参数:
    pki_instance_name=instance_name
    pki_security_domain_name=example.com Security Domain
    pki_host=server.example.com
    重要
    如果使用网络共享硬件安全模块(HSM)安装证书系统,则必须使用唯一的证书 nickname。
  4. (可选)在生成证书时使用 Elliptic Curve Curve Cryptography (ECC)而不是 RSA:
    1. [DEFAULT] 部分添加以下参数:
      pki_admin_key_algorithm=SHA256withEC
      pki_admin_key_size=nistp256
      pki_admin_key_type=ecc
      pki_sslserver_key_algorithm=SHA256withEC
      pki_sslserver_key_size=nistp256
      pki_sslserver_key_type=ecc
      pki_subsystem_key_algorithm=SHA256withEC
      pki_subsystem_key_size=nistp256
      pki_subsystem_key_type=ecc
    2. [CA] 部分添加以下参数:
      pki_ca_signing_key_algorithm=SHA256withEC
      pki_ca_signing_key_size=nistp256
      pki_ca_signing_key_type=ecc
      pki_ca_signing_signing_algorithm=SHA256withEC
      pki_ocsp_signing_key_algorithm=SHA256withEC
      pki_ocsp_signing_key_size=nistp256
      pki_ocsp_signing_key_type=ecc
      pki_ocsp_signing_signing_algorithm=SHA256withEC
    3. [CA] 部分添加以下参数以使用 ECC 配置集覆盖 RSA 配置集:
      pki_source_admincert_profile=/usr/share/pki/ca/conf/eccAdminCert.profile
      pki_source_servercert_profile=/usr/share/pki/ca/conf/eccServerCert.profile
      pki_source_subsystemcert_profile=/usr/share/pki/ca/conf/eccSubsystemCert.profile
      

其他子系统的设置

除了 “独立于子系统的设置”一节 外,还需要以下设置来安装从属 CA、KRA、OCSP、TKS 或 TPS:
  1. 在您的配置文件的 [DEFAULT] 部分添加以下条目:
    pki_client_database_password=password
  2. 如果要安装 TPS:
    1. 使用以下部分添加以下部分:
      [TPS]
      pki_authdb_basedn=basedn_of_the_TPS_authentication_database
    2. 另外,要配置 TPS 使用在共享 CA 实例中已安装的 KRA 的服务器端密钥生成,请将以下条目添加到 [TPS] 部分:
      pki_enable_server_side_keygen=True

7.7.4. 启动安装步骤

按照 第 7.7.3 节 “为安装的第一个步骤创建配置文件” 所述准备配置文件后,开始安装的第一个步骤:
# pkispawn -f /root/config.txt -s subsystem --skip-configuration
使用以下 子系统 之一替换 subsystem: CAKRAOCSPTKSTPS

7.7.5. 自定义安装步骤之间的配置

第 7.7.4 节 “启动安装步骤” 中描述的安装步骤成功完成后,您可以在实际配置开始前手动更新特定于实例的配置文件。本节提供了您可以在安装的第一步和第二步间自定义的内容。

7.7.5.1. 配置证书配置文件

在很多情况下,站点希望自定义某些证书注册配置文件(例如更改证书的默认有效期时间),或添加/删除某些配置文件。有关选项的完整列表,请参阅 第 16 章 证书配置文件配置

7.7.5.2. 启用签名的审计日志记录

签名的审计日志记录功能可检测未经授权的日志操作。详情请查看 第 18.3.1 节 “启用并配置签名的审计日志”

7.7.5.3. 更新 Ciphers 列表

在某些情况下,管理员希望更新密码列表。例如:
  • 保护证书系统实例
  • 要安装证书系统实例,并将其添加到只支持特定密码的现有站点
有关更新密码列表的详情,请查看 Red Hat Certificate System Administration Guide 中的对应部分。

RSA 加密的默认 FIPS 模式启用 Ciphers

默认情况下,证书系统包含以下为 RSA 加密启用了 FIPS 模式的密码:
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA256
  • TLS_RSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA256

ECC 加密的默认 FIPS 模式启用 Ciphers

默认情况下,证书系统包含以下为 Elliptic Curve Curve Cryptography (ECC)加密启用了 FIPS 模式的密码:
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA256

在启用了 FIPS 模式的系统中运行 HSM 时所需的 RSA 密码

如果您在为 RSA 启用 FIPS 模式的系统中安装带有 LunaSA 或硬件安全模块(HSM)的证书系统,请禁用以下密码,因为它们在 HSMs 上不被支持:
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

7.7.5.4. 配置 PKI 控制台超时

有关配置 PKI 控制台超时的详情,请参考 第 14.4.2 节 “会话超时” 中的相应部分。

7.7.5.5. 将 KRA 设置为加密模式

如果您使用硬件安全模块(HSM),在某些情况下需要把密钥恢复授权(KRA)设置为加密模式。详情请查看 “将 KRA 设置为加密模式”一节

7.7.5.6. 启用 OCSP

有关启用在线证书状态协议(OCSP)的详情,请参考 第 14.4.1.3 节 “为子系统启用证书撤销检查”

7.7.5.7. 为请求和序列号配置范围

有关为请求和序列号配置范围的详情,请参考 第 14.2.3.14 节 “为请求和序列号配置范围”

7.7.6. 启动配置步骤

根据 第 7.7.5 节 “自定义安装步骤之间的配置” 自定义配置文件后,开始安装的第二个步骤:
# pkispawn -f /root/config.txt -s subsystem --skip-installation
使用以下 子系统 之一替换 subsystem: CAKRAOCSPTKSTPS
如果配置步骤成功,pkispawn 工具会显示安装概述。例如:
================================================================
                       INSTALLATION SUMMARY
================================================================

  Administrator's username:             caadmin
  Administrator's PKCS #12 file:
        /root/.dogtag/instance_name/ca_admin_cert.p12

  To check the status of the subsystem:
        systemctl status pki-tomcatd@instance_name.service

  To restart the subsystem:
        systemctl restart pki-tomcatd@instance_name.service

  The URL for the subsystem is:
        https://server.example.com:8443/ca/

  PKI instances will be enabled upon system boot

================================================================

7.7.7. 安装后

完成以上步骤后,请按照 第 7.10 节 “安装后的任务” 进行额外的安装后操作。