7.2. 使用 pkispawn 工具安装 RHCS
如果您已熟悉 pkispawn
,您可以直接转至 第 7.4 节 “安装 PKI 子系统”。
在 Red Hat Certificate System 中,管理员使用 pkispawn
实用程序设置各个子系统。本节可让您全面了解使用 pkispawn
安装可以正常工作。在 第 7.4 节 “安装 PKI 子系统” 中遵循安装过程时,请仔细阅读它,以确保您做出正确的选择。
pkispawn
提供两种不同的操作模式:
- 交互模式 :在设置过程中要求用户单独设置。将此模式用于简单部署。
- 批处理模式:值从用户提供的配置文件中读取。配置文件中未设置的参数使用默认值(详情如下)。
在本章的其余部分中,除非另有说明,否则会假定批处理模式。
7.2.1. 创建 pkispawn
配置文件
pkispawn
工具需要一个配置文件。此文件包含分组为各个部分的参数。这些部分是堆叠的,因此前面部分中定义的参数可以被后续小节中定义的参数覆盖。部分按以下顺序读取:
- [DEFAULT] - 独立于子系统的设置
- [Tomcat]
- [CA], [KRA], [OCSP], [TKS], [TPS], [ACME], 或 [EST] - 特定于子系统的部分
当它运行时,pkispawn
:
从
/usr/share/pki/server/etc/default.cfg
文件中读取默认值。详情请查看pki_default.cfg (5)
手册页。重要不要编辑
/usr/share/pki/server/etc/default.cfg
文件。相反,您会被指示创建覆盖默认值的配置文件。有关使用配置文件的详情,请查看以下部分中与各种不同子系统类型对应的pkispawn
配置文件示例。- 读取上述管理员提供的配置文件,以覆盖默认值。
- 执行请求的子系统的安装。
- 将设置传递给根据设置执行配置的 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]
部分的配置文件中指定以下设置:
设置唯一的实例名称:
# pki_instance_name=instance_name
设置主机名:
# pki_hostname=server.example.com
注意证书系统根据这些参数和实例名称创建唯一的证书别名。证书别名的唯一性对于保持多个 PKI 实例共享的 HSM 令牌保持重要。
为 HTTP 和 HTTPS 协议设置端口号:
pki_https_port=port_number pki_http_port=port_number
重要要在同一主机上运行多个证书系统实例,您必须在
pki_https_port
和pki_http_port
参数中设置唯一端口,它们没有被主机上的任何其他服务使用。默认情况下,证书系统使用端口 8080 用于 HTTP,8443 用于 HTTPS。设置特定于 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 安装证书系统”。
如果构建 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
匹配。要在创建证书时使用 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_type
是ecc
。设置 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)
手册页。为 bootstrap admin 用户设置各种密码:
pki_admin_password=password pki_client_database_password=password pki_client_pkcs12_password=password
如果您选择在证书系统和目录服务器之间设置 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
。
-
如果您在目录服务器中使用自签名证书,请使用以下命令将其从目录服务器的网络安全服务(NSS)数据库中导出:
# certutil -L -d /etc/dirsrv/slapd-instance_name/ \ -n "server-cert" -a -o /root/ds.crt
对于充当安全域的 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] 部分:
设置 Tomcat JServ 协议(AJP)端口:
pki_ajp_port=Tomcat_AJP_port
设置 Tomcat 服务器端口:
pki_tomcat_server_port=Tomcat_server_port
要在同一主机上运行多个 PKI 子系统实例,您必须在 pki_ajp_port
和 pki_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> 参数覆盖,否则默认 pkispawn
会在 /var/lib/pki/
的 PKI 服务器实例中安装子系统。同一实例中可以安装多个子系统。
pki-tomcat
目录下名为 pki-tomcat
示例部署配置文件可在附录 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
根据部署配置文件中定义的值设置。
此安装部分需要管理员执行以下两个子步骤:
-
创建
pkispawn
配置文件。请参阅 第 7.2.1 节 “创建pkispawn
配置文件”。 运行
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/
目录中的配置文件继续安装。
此安装部分需要管理员执行以下两个子步骤:
自定义:这是在下一个子步骤之前手动更新一些实例特定配置文件的机会。您在此时自定义的参数一般是您无法在
pkispawn
配置文件中配置的参数,但会影响系统的结果或行为。例如:修改/var/lib/pki/<CA 实例名称>/ca/conf/
(请参阅 第 15 章 配置证书配置文件)下的系统证书注册配置集(*.profile)。例如:- 通过编辑对应的系统证书配置文件,将所需的证书扩展(不在默认配置文件中)添加到系统证书
- 通过编辑对应的系统证书配置文件来更改系统证书的有效性周期
针对与第一步相同的
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”。