7.2. 使用 pkispawn 工具安装 RHCS


注意

如果您已熟悉 pkispawn,您可以直接转至 第 7.4 节 “安装 PKI 子系统”

在 Red Hat Certificate System 中,管理员使用 pkispawn 实用程序设置各个子系统。本节可让您全面了解使用 pkispawn 安装可以正常工作。在 第 7.4 节 “安装 PKI 子系统” 中遵循安装过程时,请仔细阅读它,以确保您做出正确的选择。

pkispawn 提供两种不同的操作模式:

  • 交互模式 :在设置过程中要求用户单独设置。将此模式用于简单部署。
  • 批处理模式:值从用户提供的配置文件中读取。配置文件中未设置的参数使用默认值(详情如下)。

在本章的其余部分中,除非另有说明,否则会假定批处理模式。

7.2.1. 创建 pkispawn 配置文件

pkispawn 工具需要一个配置文件。此文件包含分组为各个部分的参数。这些部分是堆叠的,因此前面部分中定义的参数可以被后续小节中定义的参数覆盖。部分按以下顺序读取:

  1. [DEFAULT] - 独立于子系统的设置
  2. [Tomcat]
  3. [CA], [KRA], [OCSP], [TKS], [TPS], [ACME], 或 [EST] - 特定于子系统的部分

当它运行时,pkispawn:

  1. /usr/share/pki/server/etc/default.cfg 文件中读取默认值。详情请查看 pki_default.cfg (5) 手册页。

    重要

    不要编辑 /usr/share/pki/server/etc/default.cfg 文件。相反,您会被指示创建覆盖默认值的配置文件。有关使用配置文件的详情,请查看以下部分中与各种不同子系统类型对应的 pkispawn 配置文件示例。

  2. 读取上述管理员提供的配置文件,以覆盖默认值。
  3. 执行请求的子系统的安装。
  4. 将设置传递给根据设置执行配置的 Java servlet。

pkispawn 设置

以下提供了有关如何为 pkispawn 创建配置文件以及一些主要参数的信息。请参阅 pkispawn (8)pki_default.cfg (5) man page,特别是 /usr/share/pki/server/etc/default.cfg,如参数所属的 [ ] 部分或参数的确切拼写。

pkispawn 配置设置创建一个文本文件,如 /root/pki/config.subsystem.txt,并使用下面描述的设置填充该文件。您必须在对应的 [ ] 部分下添加每个设置。您可以引用 /usr/share/pki/server/etc/default.cfg 文件来确认正确的放置。

重要

这部分论述了常规最小配置。根据您的环境,可能需要其他参数(请参阅 /usr/share/pki/server/etc/default.cfg)。有关其他示例,请参阅 pkispawn (8) 手册页中的 EXAMPLES 部分。

有关本节中涵盖的参数的描述,请参阅 pki_default.cfg (5) 手册页。

子系统独立的设置

支持子系统的共享和单独的 PKI 实例。单独的 PKI 实例作为基于 Java 的独立 Apache Tomcat 实例运行,其中包含单个 PKI 子系统(CA、KRA、OCSP、TKS 或 TPS),如果在同一机器上并置,则必须使用唯一的实例名称和端口。共享实例作为单一基于 Java 的 Apache Tomcat 实例运行,共享同一实例名称和端口,但可以包含最高类 PKI 子系统的组合。

独立于您安装的子系统,可以在 [DEFAULT] 部分的配置文件中指定以下设置:

  1. 设置唯一的实例名称:

    # pki_instance_name=instance_name
  2. 设置主机名:

    # pki_hostname=server.example.com
    注意

    证书系统根据这些参数和实例名称创建唯一的证书别名。证书别名的唯一性对于保持多个 PKI 实例共享的 HSM 令牌保持重要。

  3. 为 HTTP 和 HTTPS 协议设置端口号:

    pki_https_port=port_number
    pki_http_port=port_number
    重要

    要在同一主机上运行多个证书系统实例,您必须在 pki_https_portpki_http_port 参数中设置唯一端口,它们没有被主机上的任何其他服务使用。默认情况下,证书系统使用端口 8080 用于 HTTP,8443 用于 HTTPS。

  4. 设置特定于 HSM 的参数:

    pki_hsm_enable=<True|False>
    pki_hsm_libfile=HSM_PKCS11_library_path
    pki_hsm_modulename=HSM_module_name
    pki_token_name=HSM_token_name
    pki_token_password=HSM_token_password
    
    pki_audit_signing_token=HSM_token_name
    pki_subsystem_token=HSM_token_name
    pki_sslserver_token=HSM_token_name

    详情请查看 第 6.2.4 节 “准备使用 HSM 安装证书系统”

  5. 如果构建 RSA 证书系统实例,请使用以下配置:

    pki_admin_key_algorithm=SHA256withRSA
    pki_admin_key_size=4096
    pki_admin_key_type=rsa
    pki_sslserver_key_algorithm=SHA256withRSA
    pki_sslserver_key_size=4096
    pki_sslserver_key_type=rsa
    pki_subsystem_key_algorithm=SHA256withRSA
    pki_subsystem_key_size=4096
    pki_subsystem_key_type=rsa
    pki_audit_signing_key_algorithm=SHA256withRSA
    pki_audit_signing_key_size=4096
    pki_audit_signing_key_type=rsa
    pki_audit_signing_signing_algorithm=SHA256withRSA

    key_algorithm 参数允许的选择有:

    SHA256withRSA
    SHA384withRSA
    SHA512withRSA
    注意

    您可以将这些算法参数设置为 CA 的 CS.cfg 文件中的 ca.profiles.defaultSigningAlgsAllowed 参数中指定的值。详情请查看管理指南中的 B.2.10 Signing Algorithm Constraint 附录。签名算法必须与 key_type 匹配。

  6. 要在创建证书时使用 Elliptic Curve Cryptography (ECC)而不是 RSA,请设置:

    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
    pki_audit_signing_key_algorithm=SHA256withEC
    pki_audit_signing_key_size=nistp256
    pki_audit_signing_key_type=ecc
    pki_audit_signing_signing_algorithm=SHA256withEC

    key_algorithm 参数允许的选择有:

    SHA256withEC
    SHA384withEC
    SHA512withEC
    注意

    您可以将这些算法参数设置为 CA 的 CS.cfg 文件中的 ca.profiles.defaultSigningAlgsAllowed 参数中指定的值。详情请查看管理指南中的 SigningAlgorithm Constraint 附录。签名算法必须与 key_type 匹配。

    对于 ECC,key_size 允许选择:

    nistp256
    nistp384
    nistp521

    对于 ECC,允许选择 key_typeecc

  7. 设置 bootstrap admin 用户的客户端目录:

    pki_client_dir=bootstrap_admin_directory

    默认情况下,路径设置为 ~/.dogtag/instance_name/

    重要

    pki_admin JavaDoc 和 pki_client 27:2.7 参数属于安装过程自动创建的 bootstrap 用户。有关默认角色(特权)和 bootstrap 用户的更多信息,请参阅 第 2.6.6 节 “用户、授权和访问控制”。有关本节中涵盖的参数的描述,请参阅 pki_default.cfg (5) 手册页。

  8. 为 bootstrap admin 用户设置各种密码:

    pki_admin_password=password
    pki_client_database_password=password
    pki_client_pkcs12_password=password
  9. 如果您选择在证书系统和目录服务器之间设置 TLS,请在配置文件中使用以下参数:

    注意

    我们需要首先创建基本的 TLS 服务器身份验证连接。在安装后,我们将返回并建立连接,要求将客户端身份验证证书提供给目录服务器。此时,一旦设置客户端身份验证,pki_ds_password 将不再相关。

    pki_ds_database=back_end_database_name
    pki_ds_hostname=host_name
    pki_ds_secure_connection=True
    pki_ds_secure_connection_ca_pem_file=path_to_CA_or_self-signed_certificate
    pki_ds_password=password
    pki_ds_ldaps_port=port
    pki_ds_bind_dn=cn=Directory Manager

    pki_ds_database 参数的值是 pkispawn 实用程序在 Directory Server 实例中创建对应的子系统数据库使用的名称。

    pki_ds_hostname 参数的值取决于目录服务器实例的安装位置。这取决于 第 6.4.1 节 “安装目录服务器软件包” 中使用的值。

    设置 pki_ds_secure_connection=True 时,必须设置以下参数:

    • pki_ds_secure_connection_ca_pem_file: 设置包含目录服务器 CA 证书的导出副本的文件的文件名。在 pkispawn 可以使用该文件之前,该文件必须已存在。
    • pki_ds_ldaps_port :设置安全 LDAPS 端口目录服务器侦听的端口。默认值为 636
  10. 如果您在目录服务器中使用自签名证书,请使用以下命令将其从目录服务器的网络安全服务(NSS)数据库中导出:

    # certutil -L -d /etc/dirsrv/slapd-instance_name/ \ -n "server-cert" -a -o /root/ds.crt
  11. 对于充当安全域的 CA,请设置正确的参数:

    # for a CA that acts as a security domain
    pki_security_domain_hostname=
    pki_security_domain_name=example.com Security Domain
    pki_security_domain_user=caadmin
    pki_security_domain_password=SD password

[Tomcat] 部分:

  1. 设置 Tomcat JServ 协议(AJP)端口:

    pki_ajp_port=Tomcat_AJP_port
  2. 设置 Tomcat 服务器端口:

    pki_tomcat_server_port=Tomcat_server_port
重要

要在同一主机上运行多个 PKI 子系统实例,您必须在 pki_ajp_portpki_tomcat_server_port 参数中设置端口,它们没有被主机上的任何其他服务使用。默认情况下,pki_ajp_port 设置为 8009,pki_tomcat_server_port 设为 8005。

特定于子系统的设置

创建初始配置文件后,将特定于子系统的设置添加到其中。在 /usr/share/pki/server/etc/default.cfg 文件中搜索每个子系统的适当参数的列表[CA], [OCSP], [TKS], [TPS] 或 [EST]。

7.2.2. 安装方法(单步或两步)

您可以在 单步安装或 两步 安装中运行 pkispawn

注意

除非被 < pki_instance_name&gt; 参数覆盖,否则默认 pkispawn 会在 /var/lib/pki/ pki-tomcat 目录下名为 pki-tomcat 的 PKI 服务器实例中安装子系统。同一实例中可以安装多个子系统。

示例部署配置文件可在附录 XXX [NEEDS UPDATING] 中找到。

7.2.2.1. 单步安装

在单步安装过程中,管理员首先创建一个 pkispawn 配置文件,然后针对此文件运行 pkispawn,如下所示:

# pkispawn -s [CA, OCSP, KRA, TKS, TPS, ACME, EST] -f cs_inst.cfg –debug
注意

在开始安装前,最好先使用- precheck 选项运行 pkispawn 命令以验证配置文件。

例如,对于 CA:

# pkispawn -s CA -f rootca_inst.cfg --precheck --debug
# pkispawn -s CA -f rootca_inst.cfg --debug

有关完整的示例,请参阅 第 7.3.1 节 “使用 pkispawn 单步方法安装 root CA”

7.2.2.2. 两步安装

在两步安装中,管理员首先创建一个 pkispawn 配置文件,然后针对同一 pkispawn 配置文件运行 pkispawn 两次。在 pkispawn 工具的执行之间,管理员可以手动更新各种配置文件,如注册配置集、cs.cfg 等。此方法可以更好地自定义。

这两步安装方法的不同阶段概述如下:

  • 第一步(安装)

    • 创建 pkispawn 配置文件。
    • 运行 pkispawn (installation)
  • 第二步(配置)

    • 自定义配置
    • 运行 pkispawn (配置)

第一步(安装)

在这一步中,pkispawn 将配置文件从 /usr/share/pki/ 目录中复制到特定于实例的 /etc/pki/instance_name/ 目录中。另外,pkispawn 根据部署配置文件中定义的值设置。

此安装部分需要管理员执行以下两个子步骤:

  1. 创建 pkispawn 配置文件。请参阅 第 7.2.1 节 “创建 pkispawn 配置文件”
  2. 运行 pkispawn,如下所示:

    # pkispawn -s [CA, OCSP, KRA, TKS, TPS] -f cs_inst.cfg --skip-configuration –debug
    注意

    在开始安装前,最好先使用- precheck 选项运行 pkispawn 命令以验证配置文件。

    例如,对于 CA:

    # pkispawn -s CA -f rootca_inst.cfg --skip-configuration --precheck --debug
    # pkispawn -s CA -f rootca_inst.cfg --skip-configuration --debug

第二步(配置)

在第二步中,pkispawn 根据实例 /etc/pki/instance_name/ 目录中的配置文件继续安装。

此安装部分需要管理员执行以下两个子步骤:

  1. 自定义:这是在下一个子步骤之前手动更新一些实例特定配置文件的机会。您在此时自定义的参数一般是您无法在 pkispawn 配置文件中配置的参数,但会影响系统的结果或行为。例如:修改 /var/lib/pki/<CA 实例名称>/ca/conf/ (请参阅 第 15 章 配置证书配置文件)下的系统证书注册配置集(*.profile)。例如:

    1. 通过编辑对应的系统证书配置文件,将所需的证书扩展(不在默认配置文件中)添加到系统证书
    2. 通过编辑对应的系统证书配置文件来更改系统证书的有效性周期
  2. 针对与第一步相同的 pkispawn 文件运行 pkispawn,但采用以下不同方法:

    # pkispawn -s [CA, OCSP, KRA, TKS, TPS] -f cs_inst.cfg --skip-installation –debug
注意

在开始安装之前,最好先使用 配置文件运行预先检查。

例如,对于 CA:

# pkispawn -s CA -f rootca_inst.cfg --skip-installation --precheck --debug
# pkispawn -s CA -f rootca_inst.cfg --skip-installation --debug

有关完整的示例,请参阅 第 7.3.2 节 “使用 pkispawn 双步骤方法安装 root CA”

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.