7.13. 安装后
本章论述了在子系统安装后发生的安装后任务。
使用 pkispawn 工具完成安装后,需要或强烈建议某些操作。此外,一些可选操作也很有帮助,具体取决于站点的首选项。
有关可选流程,请参阅 第 III 部分 “第 III 部分:配置红帽认证系统”。安装后的步骤包括:
- 配置或添加证书注册配置文件(CA)。详情请查看 第 11 章 配置证书配置文件。
对于必填或强烈建议的流程,请执行下面描述的操作。
在启动或重启实例后,配置更改才会生效。通常,您应该确保在执行所有操作系统文件系统级安装后配置之前停止所有 CS 实例。完成后,您可以重启实例。
7.13.1. 为 RHCS 设置日期和时间 复制链接链接已复制到粘贴板!
务必要为运行 RHCS 正确设置时间非常重要。系统时间始终保存在 协调世界时间 (UTC)中,并根据需要将应用程序转换为本地时间。本地时间是 您当前时区的实际时间,考虑 节省时间 (DST)。
timedatectl 工具作为 systemd 系统和服务管理器的一部分提供,允许您检查和更改系统时钟的配置。
更改当前时间:
timedatectl set-time HH:MM:SS
# timedatectl set-time HH:MM:SSCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 HH 替换为一小时,MM 替换为一分钟,SS 替换为第二个,所有以两位形式键入的 SS。
更改当前日期:
timedatectl set-time YYYY-MM-DD
# timedatectl set-time YYYY-MM-DDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 YYYY 替换为四位数年,MM 替换为两位月,DD 替换为月份的两位天。
设置时区:
首先,显示可用时区列表:
timedatectl list-timezones
# timedatectl list-timezonesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 根据以上列表,使用以下命令设置所需的时区:
timedatectl set-timezone <your_preferred_timezone>
# timedatectl set-timezone <your_preferred_timezone>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
操作系统审计时间更改。更多信息请参阅 第 13.2.1.3 节 “审计时间更改事件”。
7.13.2. 配置会话超时 复制链接链接已复制到粘贴板!
系统中存在各种超时配置,它们可能会影响 TLS 会话在终止前可以保持闲置的时长。详情请查看 第 9.4.2 节 “会话超时”。
7.13.3. 为证书中的 SubjectKeyIdentifier 扩展设置非 SHA1 消息摘要算法 复制链接链接已复制到粘贴板!
默认情况下,在注册配置集中设置的 SubjectKeyIdentifier 扩展将使用 SHA-1 计算。要将其设置为其他算法,您需要编辑注册配置文件。例如:
为证书打开注册配置文件:
vi /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/caCMCcaCert.cfg
# vi /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/caCMCcaCert.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加以下参数:
policyset.caCertSet.8.default.params.messageDigest=SHA-256
policyset.caCertSet.8.default.params.messageDigest=SHA-256Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存文件并重启 CA。
确保 SubjectKeyIdentifierExtension 在 AuthorityKeyIdentifierExtension 之前。如果没有,只需调整 list 参数中的位置,例如,如果 8 是 SubjectKeyIdentifierExtension,并且 4 是 AuthorityKeyIdentifierExtension,则以下内容将在列表中的 4 之前放置 8 :
policyset.caCertSet.list=1,2,3,8,4,5,6,9,10
policyset.caCertSet.list=1,2,3,8,4,5,6,9,10
7.13.4. CMC 注册和吊销(CA)的配置 复制链接链接已复制到粘贴板!
您可以通过 CMC 进行证书注册和吊销。该配置在 第 9.6 节 “配置 CMC” 中进行了描述。具体来说:
- 有关启用 CMC 共享令牌功能的详情,请参考 第 9.6.3 节 “启用 CMC Shared Secret 功能”。
-
有关启用 PopLinkWitness 功能的详情,请参考 第 9.6.2 节 “启用
PopLinkWitnessV2功能”。 - 有关为 Web 用户界面启用 CMCRevoke 的详情,请参考 第 9.6.4 节 “为 Web 用户界面启用 CMCRevoke”。
7.13.5. 启用 Nuxwdog (watchdog 服务) 复制链接链接已复制到粘贴板!
watchdog (nuxwdog)服务提供安全的系统密码管理。如需了解更多详细信息,请参阅 第 9.3.2.1 节 “启用 watchdog 服务”。本节论述了如何为每个实例启用 Nuxwdog watchdog。
7.13.5.1. 为 RootCA 启用 Nuxwdog 复制链接链接已复制到粘贴板!
以下流程提供在 RootCA 实例上启用 Nuxwdog 所需的步骤。
先决条件
- 以 root 用户身份登录 rhcs10.example.com。
-
确保实例已停止。如果没有,则使用
systemctl stop pki-tomcatd@rhcs10-RSA-RootCA.service命令停止它。
流程
将
cms.tokenList=<HSM_TOKEN_NAME> 参数添加到CS.cfg中,例如:cat /var/lib/pki/rhcs10-RSA-RootCA/ca/conf/CS.cfg | grep cms.tokenList cms.tokenList=NHSM-CONN-XC
# cat /var/lib/pki/rhcs10-RSA-RootCA/ca/conf/CS.cfg | grep cms.tokenList cms.tokenList=NHSM-CONN-XCCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将密码文件移动到另一个目录中:
mv /var/lib/pki/rhcs10-RSA-RootCA/conf/password.conf ~/<YOUR_PREFERRED_DIR>/
# mv /var/lib/pki/rhcs10-RSA-RootCA/conf/password.conf ~/<YOUR_PREFERRED_DIR>/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 Nuxwdog 服务:
pki-server instance-nuxwdog-enable rhcs10-RSA-RootCA --------------------------- Nuxwdog enabled for instance rhcs10-RSA-RootCA. ---------------------------
# pki-server instance-nuxwdog-enable rhcs10-RSA-RootCA --------------------------- Nuxwdog enabled for instance rhcs10-RSA-RootCA. ---------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Nuxwdog 服务启动实例。系统将提示您输入密码,可在您指示在之前的步骤中保存(
~/<YOUR_PREFERRED_DIR>/ 的password.conf文件中找到。请注意,一旦成功启用了 Nuxwdog,则 CS 实例启动/停止/重新启动/status 命令会有所不同:systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-RootCA.service [rhcs10-RSA-RootCA] Please provide the password for internal: ***** [rhcs10-RSA-RootCA] Please provide the password for hardware-NHSM-CONN-XC: *****
# systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-RootCA.service [rhcs10-RSA-RootCA] Please provide the password for internal: ***** [rhcs10-RSA-RootCA] Please provide the password for hardware-NHSM-CONN-XC: *****Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤:
使用 Nuxwdog 检查 RootCA 实例的状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.13.5.2. 为 SubCA 启用 Nuxwdog 复制链接链接已复制到粘贴板!
以下流程提供在 SubCA 实例上启用 Nuxwdog 所需的步骤。
先决条件
- 以 root 用户身份登录 rhcs10.example.com。
-
确保实例已停止。如果没有,则使用
systemctl stop pki-tomcatd@rhcs10-RSA-SubCA.service命令停止它。
流程
将
cms.tokenList=<HSM_TOKEN_NAME> 参数添加到CS.cfg中,例如:cat /var/lib/pki/rhcs10-RSA-SubCA/ca/conf/CS.cfg | grep cms.tokenList cms.tokenList=NHSM-CONN-XC
# cat /var/lib/pki/rhcs10-RSA-SubCA/ca/conf/CS.cfg | grep cms.tokenList cms.tokenList=NHSM-CONN-XCCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将密码文件移动到另一个目录中:
mv /var/lib/pki/rhcs10-RSA-SubCA/conf/password.conf ~/<YOUR_PREFERRED_DIR>/
# mv /var/lib/pki/rhcs10-RSA-SubCA/conf/password.conf ~/<YOUR_PREFERRED_DIR>/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 Nuxwdog 服务:
pki-server instance-nuxwdog-enable rhcs10-RSA-SubCA --------------------------- Nuxwdog enabled for instance rhcs10-RSA-SubCA. ---------------------------
# pki-server instance-nuxwdog-enable rhcs10-RSA-SubCA --------------------------- Nuxwdog enabled for instance rhcs10-RSA-SubCA. ---------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Nuxwdog 服务启动实例。请注意,一旦成功启用了 Nuxwdog,则 CS 实例启动/停止/重新启动/status 命令会有所不同:
systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-SubCA.service [rhcs10-RSA-SubCA] Please provide the password for internal: ***** [rhcs10-RSA-SubCA] Please provide the password for hardware-NHSM-CONN-XC: ***** [rhcs10-RSA-SubCA] Please provide the password for Rule SharedToken: ******
# systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-SubCA.service [rhcs10-RSA-SubCA] Please provide the password for internal: ***** [rhcs10-RSA-SubCA] Please provide the password for hardware-NHSM-CONN-XC: ***** [rhcs10-RSA-SubCA] Please provide the password for Rule SharedToken: ******Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤:
使用 Nuxwdog 检查 SubCA 实例的状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.13.5.3. 为 OCSP 启用 Nuxwdog 复制链接链接已复制到粘贴板!
以下流程提供了在 OCSP 实例上启用 Nuxwdog 所需的步骤。
先决条件
- 以 root 用户身份登录 rhcs10.example.com。
-
确保实例已停止。如果没有,请停止它,例如,对相关实例使用
systemctl stop pki-tomcatd@rhcs10-RSA-OCSP-rootca.service或systemctl stop pki-tomcatd@rhcs10-RSA-OCSP-subca.service。
流程
例如,对于 RootCA 的 OCSP:
将
cms.tokenList=<TOKEN_NAME> 参数添加到CS.cfg中,例如:cat /var/lib/pki/rhcs10-RSA-OCSP-rootca/ocsp/conf/CS.cfg | grep cms.tokenList cms.tokenList=NHSM-CONN-XC
# cat /var/lib/pki/rhcs10-RSA-OCSP-rootca/ocsp/conf/CS.cfg | grep cms.tokenList cms.tokenList=NHSM-CONN-XCCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将密码文件移动到另一个目录中:
mv /var/lib/pki/rhcs10-RSA-OCSP-rootca/conf/password.conf ~/<YOUR_PREFERRED_DIR>/
# mv /var/lib/pki/rhcs10-RSA-OCSP-rootca/conf/password.conf ~/<YOUR_PREFERRED_DIR>/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 Nuxwdog 服务:
pki-server instance-nuxwdog-enable rhcs10-RSA-OCSP-rootca/ --------------------------- Nuxwdog enabled for instance rhcs10-RSA-OCSP-rootca/. ---------------------------
# pki-server instance-nuxwdog-enable rhcs10-RSA-OCSP-rootca/ --------------------------- Nuxwdog enabled for instance rhcs10-RSA-OCSP-rootca/. ---------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Nuxwdog 服务启动实例:
systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-rootca.service [rhcs10-RSA-OCSP-rootca/] Please provide the password for internal: ***** [rhcs10-RSA-OCSP-rootca/] Please provide the password for hardware-NHSM-CONN-XC: *****
# systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-rootca.service [rhcs10-RSA-OCSP-rootca/] Please provide the password for internal: ***** [rhcs10-RSA-OCSP-rootca/] Please provide the password for hardware-NHSM-CONN-XC: *****Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
通过调整实例名称(例如,使用
rhcs10-RSA-OCSP-subca),为 SubCA 的 OCSP 重复上述步骤。
验证
使用 Nuxwdog 检查 OCSP 实例的状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.13.5.4. 为 KRA 启用 Nuxwdog 复制链接链接已复制到粘贴板!
以下流程提供在 KRA 实例上启用 Nuxwdog 所需的步骤。
先决条件
- 以 root 用户身份登录 rhcs10.example.com。
-
确保实例已停止。如果没有,则使用
systemctl stop pki-tomcatd@rhcs10-RSA-KRA.service命令停止它。
流程
在
CS> 参数,例如:.cfg文件中添加 cms.tokenList=<TOKEN_NAMEcat /var/lib/pki/rhcs10-RSA-KRA/kra/conf/CS.cfg | grep cms.tokenList cms.tokenList=NHSM-CONN-XC
# cat /var/lib/pki/rhcs10-RSA-KRA/kra/conf/CS.cfg | grep cms.tokenList cms.tokenList=NHSM-CONN-XCCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将密码文件移动到另一个目录中:
mv /var/lib/pki/rhcs10-RSA-KRA/conf/password.conf ~/<YOUR_PREFERRED_DIR>/
# mv /var/lib/pki/rhcs10-RSA-KRA/conf/password.conf ~/<YOUR_PREFERRED_DIR>/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 Nuxwdog 服务:
pki-server instance-nuxwdog-enable rhcs10-RSA-KRA --------------------------- Nuxwdog enabled for instance rhcs10-RSA-KRA. ---------------------------
# pki-server instance-nuxwdog-enable rhcs10-RSA-KRA --------------------------- Nuxwdog enabled for instance rhcs10-RSA-KRA. ---------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Nuxwdog 服务启动实例:
systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-KRA.service [rhcs10-RSA-KRA] Please provide the password for internal: ***** [rhcs10-RSA-KRA] Please provide the password for hardware-NHSM-CONN-XC: *****
# systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-KRA.service [rhcs10-RSA-KRA] Please provide the password for internal: ***** [rhcs10-RSA-KRA] Please provide the password for hardware-NHSM-CONN-XC: *****Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤:
使用 Nuxwdog 检查 KRA 实例的状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.13.5.5. 为 TKS 启用 Nuxwdog 复制链接链接已复制到粘贴板!
以下流程提供了在 TKS 实例上启用 Nuxwdog 所需的步骤。
先决条件
- 以 root 用户身份登录 rhcs10.example.com。
-
确保实例已停止。如果没有,则使用
systemctl stop pki-tomcatd@rhcs10-RSA-TKS.service命令停止它。
流程
在
CS> 参数,例如:.cfg文件中添加 cms.tokenList=<TOKEN_NAMEcat /var/lib/pki/rhcs10-RSA-TKS/TKS/conf/CS.cfg | grep cms.tokenList cms.tokenList=NHSM-CONN-XC
# cat /var/lib/pki/rhcs10-RSA-TKS/TKS/conf/CS.cfg | grep cms.tokenList cms.tokenList=NHSM-CONN-XCCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将密码文件移动到另一个目录中:
mv /var/lib/pki/rhcs10-RSA-TKS/conf/password.conf ~/<YOUR_PREFERRED_DIR>/
# mv /var/lib/pki/rhcs10-RSA-TKS/conf/password.conf ~/<YOUR_PREFERRED_DIR>/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 Nuxwdog 服务:
pki-server instance-nuxwdog-enable rhcs10-RSA-TKS --------------------------- Nuxwdog enabled for instance rhcs10-RSA-TKS. ---------------------------
# pki-server instance-nuxwdog-enable rhcs10-RSA-TKS --------------------------- Nuxwdog enabled for instance rhcs10-RSA-TKS. ---------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Nuxwdog 服务启动实例:
systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-TKS.service [rhcs10-RSA-TKS] Please provide the password for internal: ***** [rhcs10-RSA-TKS] Please provide the password for hardware-NHSM-CONN-XC: *****
# systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-TKS.service [rhcs10-RSA-TKS] Please provide the password for internal: ***** [rhcs10-RSA-TKS] Please provide the password for hardware-NHSM-CONN-XC: *****Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤:
使用 Nuxwdog 检查 TKS 实例的状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.13.5.6. 为 TPS 启用 Nuxwdog 复制链接链接已复制到粘贴板!
以下流程提供了在 TPS 实例中启用 Nuxwdog 所需的步骤。
先决条件
- 以 root 用户身份登录 rhcs10.example.com。
-
确保实例已停止。如果没有,则使用
systemctl stop pki-tomcatd@rhcs10-RSA-TPS.service命令停止它。
流程
在
CS> 参数,例如:.cfg文件中添加 cms.tokenList=<TOKEN_NAMEcat /var/lib/pki/rhcs10-RSA-TPS/TPS/conf/CS.cfg | grep cms.tokenList cms.tokenList=NHSM-CONN-XC
# cat /var/lib/pki/rhcs10-RSA-TPS/TPS/conf/CS.cfg | grep cms.tokenList cms.tokenList=NHSM-CONN-XCCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将密码文件移动到另一个目录中:
mv /var/lib/pki/rhcs10-RSA-TPS/conf/password.conf ~/<YOUR_PREFERRED_DIR>/
# mv /var/lib/pki/rhcs10-RSA-TPS/conf/password.conf ~/<YOUR_PREFERRED_DIR>/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 Nuxwdog 服务:
pki-server instance-nuxwdog-enable rhcs10-RSA-TPS --------------------------- Nuxwdog enabled for instance rhcs10-RSA-TPS. ---------------------------
# pki-server instance-nuxwdog-enable rhcs10-RSA-TPS --------------------------- Nuxwdog enabled for instance rhcs10-RSA-TPS. ---------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Nuxwdog 服务启动实例:
systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-TPS.service [rhcs10-RSA-TPS] Please provide the password for internal: ***** [rhcs10-RSA-TPS] Please provide the password for hardware-NHSM-CONN-XC: *****
# systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-TPS.service [rhcs10-RSA-TPS] Please provide the password for internal: ***** [rhcs10-RSA-TPS] Please provide the password for hardware-NHSM-CONN-XC: *****Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤:
使用 Nuxwdog 检查 TPS 实例的状态:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.13.6. 使用客户端身份验证配置 pkiconsole 登录 复制链接链接已复制到粘贴板!
本节论述了使用客户端身份验证配置 pkiconsole 登录。在以下配置中,实例可以是 CA、OCSP、KRA 或 TKS。
先决条件配置
您必须将每个 CS 实例配置为允许 pkiconsole TLS 连接。
- 以 root 用户身份登录 rhcs10.example.com。
停止需要使用客户端身份验证进行控制台登录的服务器。
pki-server stop rhcs10-<INSTANCE>
# pki-server stop rhcs10-<INSTANCE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,如果使用 Nuxwdog watchdog:
systemctl stop pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.service
# systemctl stop pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更改位于
/var/lib/pki/ <instance name> / <subsystem>/conf的目录。例如,如果改为 RootCA conf 目录:cd /var/lib/pki/rhcs10-RSA-RootCA/ca/conf
# cd /var/lib/pki/rhcs10-RSA-RootCA/ca/confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 修改
CS.cfg文件,将authType从pwd改为sslclientauth,例如:authType=sslclientauth
authType=sslclientauthCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意另外,您可以使用
config-set命令将authType=sslclientauth行添加到CS.cfg中。例如,使用ca-config-set添加到 RootCA 中:pki-server ca-config-set -i rhcs10-RSA-RootCA authType sslclientauth
# pki-server ca-config-set -i rhcs10-RSA-RootCA authType sslclientauthCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动服务器:
pki-server start rhcs10-<INSTANCE>
# pki-server start rhcs10-<INSTANCE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,如果使用 Nuxwdog watchdog:
systemctl start pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.service
# systemctl start pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
每个 RHCS 管理员都需要在使用带 TLS 连接的 pkiconsole 之前执行一些设置。
- 以非 root admin 用户身份登录 rhcs10.example.com (例如: jgenie)。
-
bootstrap admin 用户应该向 jgenie 提供 SubCA 和 RootCA 签名证书。在收到 rhcs10.example.com 上的
/opt/pki_rsa/subCA.pem和/opt/pki_rsa/rootCA.pem的内容后,jgenie 应该分别将它们复制到/home/jgenie/certs_db/rsa_subCA.pem和/home/jgenie/certs_db/rsa_rootCA.pem中。 如果不存在,请创建一个 nssdb:
pki -d /home/jgenie/.redhat-idm-console -c SECret.123 client-init
$ pki -d /home/jgenie/.redhat-idm-console -c SECret.123 client-initCopy to Clipboard Copied! Toggle word wrap Toggle overflow 导入角色用户证书(例如
/home/jgenie/certs_db/rsa_SubCA_AdminV.p12):pki -d /home/jgenie/.redhat-idm-console -c SECret.123 client-cert-import --pkcs12 /home/jgenie/certs_db/rsa_SubCA_AdminV.p12 --pkcs12-password SECret.123
$ pki -d /home/jgenie/.redhat-idm-console -c SECret.123 client-cert-import --pkcs12 /home/jgenie/certs_db/rsa_SubCA_AdminV.p12 --pkcs12-password SECret.123Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导入 CA 证书:
pki -d /home/jgenie/.redhat-idm-console -c SECret.123 client-cert-import "CA Signing Cert - rhcs10-RSA-SubCA" --ca-cert /home/jgenie/certs_db/rsa_subCA.pem ------------------------------------- Imported certificate "CA Signing Cert - rhcs10-RSA-SubCA" -------------------------------------
$ pki -d /home/jgenie/.redhat-idm-console -c SECret.123 client-cert-import "CA Signing Cert - rhcs10-RSA-SubCA" --ca-cert /home/jgenie/certs_db/rsa_subCA.pem ------------------------------------- Imported certificate "CA Signing Cert - rhcs10-RSA-SubCA" -------------------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -d /home/jgenie/.redhat-idm-console -c SECret.123 client-cert-import "CA Signing Cert - rhcs10-RSA-RootCA" --ca-cert /home/jgenie/certs_db/rsa_rootCA.pem ------------------------------------- Imported certificate "CA Signing Cert - rhcs10-RSA-RootCA" -------------------------------------
$ pki -d /home/jgenie/.redhat-idm-console -c SECret.123 client-cert-import "CA Signing Cert - rhcs10-RSA-RootCA" --ca-cert /home/jgenie/certs_db/rsa_rootCA.pem ------------------------------------- Imported certificate "CA Signing Cert - rhcs10-RSA-RootCA" -------------------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证:
验证用于对服务器进行身份验证的 admin 用户证书。例如:
pki -U https://rhcs10.example.com:31443 -d /home/jgenie/.redhat-idm-console -c SECret.123 -n rsa_SubCA_AdminV ca-user-find
$ pki -U https://rhcs10.example.com:31443 -d /home/jgenie/.redhat-idm-console -c SECret.123 -n rsa_SubCA_AdminV ca-user-findCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
pkiconsole是否可以使用客户端身份验证连接到 ca:以 pki admin 用户身份登录(如 jgenie),例如:
ssh -X jgenie@rhcs10.example.com
$ ssh -X jgenie@rhcs10.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
pkiconsole。例如:pkiconsole -d /home/jgenie/.redhat-idm-console -n rsa_SubCA_AdminV https://rhcs10.example.com:31443/ca
$ pkiconsole -d /home/jgenie/.redhat-idm-console -n rsa_SubCA_AdminV https://rhcs10.example.com:31443/caCopy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您看到错误 No X11 DISPLAY 变量,但该程序执行了在启动 的操作,请尝试以下步骤:
pkiconsole 时需要它
以 root 用户身份在 rhcs10.example.com 上安装
xauth:dnf install xauth
# dnf install xauthCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重新以 RHCS admin 用户身份登录,以运行
pkiconsole。例如:ssh -X jgenie@rhcs10.example.com
# ssh -X jgenie@rhcs10.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow pkiconsole -d /home/jgenie/.redhat-idm-console -n rsa_SubCA_AdminV https://rhcs10.example.com:31443/ca
# pkiconsole -d /home/jgenie/.redhat-idm-console -n rsa_SubCA_AdminV https://rhcs10.example.com:31443/caCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.13.7. 启用签名的审计日志记录 复制链接链接已复制到粘贴板!
前提条件
- 以 root 用户身份登录 rhcs10.example.com。
流程
停止该实例。例如,对于 KRA:
pki-server stop rhcs10-RSA-KRA
# pki-server stop rhcs10-RSA-KRACopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,如果使用 Nuxwdog watchdog:
systemctl stop pki-tomcatd-nuxwdog@rhcs10-KRA.service
# systemctl stop pki-tomcatd-nuxwdog@rhcs10-KRA.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
CS.cfg文件中将log.instance.SignedAudit.logSigning属性设置为true(默认为false)。例如:vi /var/lib/pki/rhcs10-RSA-KRA/kra/conf/CS.cfg
# vi /var/lib/pki/rhcs10-RSA-KRA/kra/conf/CS.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow log.instance.SignedAudit.logSigning=true
log.instance.SignedAudit.logSigning=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动实例。例如:
pki-server start rhcs10-RSA-KRA
# pki-server start rhcs10-RSA-KRACopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,如果使用 Nuxwdog watchdog:
systemctl start pki-tomcatd-nuxwdog@rhcs10-KRA.service
# systemctl start pki-tomcatd-nuxwdog@rhcs10-KRA.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
您还可以通过 CLI 进行审计日志签名。请参阅安装指南中的"启用签名的审计日志记录"。
7.13.8. 检索审计日志文件(Auditors) 复制链接链接已复制到粘贴板!
审核员(如 - rsa_SubCA_AuditV)可以按照以下流程访问签名的审计日志。
流程
以 审核员 身份(一个非 root 用户)登录到 rhcs10.example.com,例如 - aguru。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出可用的审计日志文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,只有一个文件
ca_audit,但您可以有多个审计日志文件。作为审核员,检索审计日志文件并将其存储在本地:
pki -d /home/aguru/certs_db -n "rsa_SubCA_AuditV" -c SECret.123 -p 31443 -h `hostname` ca-audit-file-retrieve ca_audit --output /home/aguru/certs_db/ca_audit
$ pki -d /home/aguru/certs_db -n "rsa_SubCA_AuditV" -c SECret.123 -p 31443 -h `hostname` ca-audit-file-retrieve ca_audit --output /home/aguru/certs_db/ca_auditCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您有多个日志文件,请逐一检索这些文件。
使用
AuditVerify工具验证签名的审计日志:将 SubCA 审计签名证书导入到 nssdb:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -d /home/aguru/certs_db -c SECret.123 -p 31443 -h hostname client-cert-import "SubCA Audit Signing Certificate" --serial 0xe8e47bf --trust ",,P" --------------------------------------------------- Imported certificate "SubCA Audit Signing Certificate" ---------------------------------------------------
$ pki -d /home/aguru/certs_db -c SECret.123 -p 31443 -h hostname client-cert-import "SubCA Audit Signing Certificate" --serial 0xe8e47bf --trust ",,P" --------------------------------------------------- Imported certificate "SubCA Audit Signing Certificate" ---------------------------------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以 chronological 顺序创建一个包含审计日志文件列表的文件:
cat > /home/aguru/certs_db/audit.txt << EOF ca_audit EOF
$ cat > /home/aguru/certs_db/audit.txt << EOF ca_audit EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 auditVerify 工具:
cd /home/aguru/certs_db/
$ cd /home/aguru/certs_db/Copy to Clipboard Copied! Toggle word wrap Toggle overflow AuditVerify -d /home/aguru/certs_db -n "SubCA Audit Signing Certificate" -a audit.txt
$ AuditVerify -d /home/aguru/certs_db -n "SubCA Audit Signing Certificate" -a audit.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.13.9. 启用 OS 级别(工作环境)审计日志 复制链接链接已复制到粘贴板!
auditd 日志记录框架提供了许多其他审计功能。这些操作系统级别(工作环境)审计日志直接由证书系统提供的补充功能。
先决条件
在执行本节中的任何步骤前,请确保已安装了
audit软件包:dnf install audit
# dnf install auditCopy to Clipboard Copied! Toggle word wrap Toggle overflow
确保系统上存在文件 /etc/audit/rules.d/audit.rules,其内容如下:
审计证书系统审计日志删除
要在删除审计日志时接收审计事件,您需要审计目标为证书系统日志的系统调用。
使用以下内容创建文件
/etc/audit/rules.d/rhcs-audit-log-deletion.rules:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 然后重启
auditd服务:service auditd restart
# service auditd restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
审计未授权证书系统使用 secret 密钥
要接收对证书系统 Secret 或私钥的所有访问权限的审计事件,您需要审核文件系统对 nssdb 的访问。
使用以下内容创建
/etc/audit/rules.d/rhcs-audit-nssdb-access.rules文件,将 < instance name> 替换为当前实例:-w /etc/pki/<instance name>/alias -p warx -k rhcs_audit_nssdb
-w /etc/pki/<instance name>/alias -p warx -k rhcs_audit_nssdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于
/etc/pki/ <instance name> /alias 中的每个文件(<file>),将以下行添加到/etc/audit/rules.d/rhcs-audit-nssdb-access.rules:-w /etc/pki/<instance name>/alias/<file> -p warx -k rhcs_audit_nssdb
-w /etc/pki/<instance name>/alias/<file> -p warx -k rhcs_audit_nssdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,如果
rhcs10-RSA-SubCA实例上的文件为cert8.db,key3.db,NHSM-CONN-XCcert8.db,NHSM-CONN-XCkey3.db, 和secmod.db,则配置文件将包含:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 然后重启
auditd:service auditd restart
# service auditd restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
每当向同一系统添加新实例时,请扩展 /etc/audit/rules.d/rhcs-audit-nssdb-access.rules,以同样的方式包含新实例文件。
审计时间更改事件
要接收审计事件的更改,您需要审核系统调用访问,这可能会修改系统时间。
使用以下内容创建
/etc/audit/rules.d/rhcs-audit-rhcs_audit_time_change.rules文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 然后重启
auditd:service auditd restart
# service auditd restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
审计对证书系统配置的访问
要接收对证书系统实例配置文件的所有修改的审计事件,请审核这些文件的文件系统访问。
使用以下内容创建
/etc/audit/rules.d/rhcs-audit-config-access.rules文件:-w /etc/pki/instance_name/server.xml -p wax -k rhcs_audit_config
-w /etc/pki/instance_name/server.xml -p wax -k rhcs_audit_configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,在
/etc/pki/instance_name/目录中为每个子系统添加以下内容:-w /etc/pki/instance name/subsystem/CS.cfg -p wax -k rhcs_audit_config
-w /etc/pki/instance name/subsystem/CS.cfg -p wax -k rhcs_audit_configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,如果在 rhcs10-RSA-SubCA 实例上只安装了 CA,
/etc/audit/rules.d/rhcs-audit-config-access.rules文件将包含:-w /etc/pki/rhcs10-RSA-SubCA/server.xml -p wax -k rhcs_audit_config -w /etc/pki/rhcs10-RSA-SubCA/ca/CS.cfg -p wax -k rhcs_audit_config
-w /etc/pki/rhcs10-RSA-SubCA/server.xml -p wax -k rhcs_audit_config -w /etc/pki/rhcs10-RSA-SubCA/ca/CS.cfg -p wax -k rhcs_audit_configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,在
rhcs_audit_nssdb下已对对 RHCS NSS 数据库的访问进行了审核。
每当向同一系统添加新实例时,请扩展 /etc/audit/rules.d/rhcs-audit-nssdb-access.rules,以同样的方式包含新实例文件。
验证审计规则
添加每个审计规则并重启 auditd 服务后,您可以验证是否添加了新规则:
auditctl -l
# auditctl -lCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新规则的内容应该在输出中可见。
验证审计
您可以验证 rhcs_audit_nssdb 的规则是否与一个简单的测试一起工作,例如:
访问 SubCA 别名目录:
cd /etc/pki/rhcs10-RSA-SubCA/alias/
# cd /etc/pki/rhcs10-RSA-SubCA/alias/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查审计事件:
ausearch -k rhcs_audit_nssdb
# ausearch -k rhcs_audit_nssdbCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.13.10. 验证 RHCS 子系统的对等证书 复制链接链接已复制到粘贴板!
RHCS 10.4 为 RHCS 子系统提供不同的机制来验证其对等证书,无论是作为客户端还是作为服务器建立 TLS 会话。使用的机制是 OCSP 或 CRL。
以下提供了有关如何为每种 RHCS 子系统启用它们的详细信息。
7.13.10.1. 为 OCSP 启用对等证书状态检查 复制链接链接已复制到粘贴板!
这部分论述了在 OCSP 子系统中启用撤销检查的替代方法。有关首选方法,请参阅下一部分: 第 7.13.10.2 节 “为 CA / KRA / TKS / TPS 启用 OCSP”。
为 OCSP 系统本身启用 OCSP 会导致一个 chicken 和 eggnomenon (如果对等 AIA 在完全启动前指向 OCSP 系统本身时)。OCSP 子系统具有频繁更新的 CRL 的优势,可验证其对等的证书,而无需联系另一个 OCSP 系统。要启用这样的特殊功能,请在 OCSP 的 CS.cfg 中设置以下两个参数:
ocsp.store.ldapStore.validateConnCertWithCRL=true auths.revocationChecking.enabled=true
ocsp.store.ldapStore.validateConnCertWithCRL=true
auths.revocationChecking.enabled=true
除了在 CS.cfg 中启用两个参数外,enableOCSP 参数应该在其 server.xml 文件中保持 "false",例如: /var/lib/pki/rhcs10-RSA-OCSP-rootca/conf/server.xml 和 /var/lib/pki/rhcs10-RSA-OCSP-subca/conf/server.xml。
enableOCSP=”false”
enableOCSP=”false”
7.13.10.2. 为 CA / KRA / TKS / TPS 启用 OCSP 复制链接链接已复制到粘贴板!
本节提供的说明也适用于 OCSP 子系统,只要对等证书的 AIA 在 OCSP 系统启动期间没有指向同一 OCSP 子系统。
例如,在本章的前面部分,在安装过程(7.4.1 和 7.7.1)中,用于 OCSP 服务器的内部目录服务器的服务器证书会重新发布,其 AIA 指向其相应的 CA 的内部 OCSP 服务。
以下流程旨在根据对等证书中的以下扩展来配置您的 CA、OCSP、KRA、TKS 和 TPS 实例,以验证其对等证书的撤销状态:
OCSP AIA 扩展(也称为本文档中的 ocsp-aia)。
请注意,在大多数情况下,OCSP-aia 是在 CRL 分发点上推荐的方法。
CRL 分发点扩展。
请注意,一般的 CRL 分发点仅在 OCSP 不可用时使用。如需更多信息,请参阅 第 7.13.10.3 节 “在 CA 上在没有 OCSP 的情况下启用对等证书状态检查”
前提条件
- 以 root 用户身份登录 rhcs10.example.com。
流程
此流程使用 KRA 作为示例。类似的步骤也适用于 CA、OCSP、TKS 和 TPS 实例,为适当的实例调整命令。
停止 KRA:
pki-server stop rhcs10-RSA-KRA
# pki-server stop rhcs10-RSA-KRACopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,如果使用 Nuxwdog watchdog:
systemctl stop pki-tomcatd-nuxwdog@rhcs10-KRA.service
# systemctl stop pki-tomcatd-nuxwdog@rhcs10-KRA.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
/var/lib/pki/rhcs10-RSA-KRA/conf/server.xml文件来配置Connector name="Secure"部分:-
将
enableRevocationCheck参数设置为true。请注意,enableRevocationCheck也被称为enableOCSP。仅设置一个,而不能同时设置。 确保 删除 这两个参数及其分配值:
-
ocspResponderURL -
ocspResponderCertNickname
例如:
-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
启动 KRA:
pki-server start rhcs10-RSA-KRA
# pki-server start rhcs10-RSA-KRACopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,如果使用 Nuxwdog watchdog:
systemctl start pki-tomcatd-nuxwdog@rhcs10-KRA.service
# systemctl start pki-tomcatd-nuxwdog@rhcs10-KRA.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
默认情况下,在安装过程中创建的所有 RHCS 系统证书都使用 AIA (授权信息访问)扩展生成,指向其发出 CA 的内部 OCSP 服务,如 http://rhcs10.example.com:31080/ca/ocsp。
如果您遵循了 设置默认 AIA 扩展指向这个 OCSP 的步骤,请在安装 KRA 之前指向外部 OCSP,那么所有 KRA 系统证书(以及其 CA 发布的所有证书)应与指向外部 OCSP 的正确 AIA 相对应。
在上述 server.xml 中设置 enableRevocationCheck 或 启用OCSP 参数时(启用 OCSP ),则 OCSP 实例需要在依赖它的任何实例启动时启动并运行,如我们的安装示例中的 KRA、TKS 和 TPS。
同样,CA 需要在其外部 OCSP 启动之前启动并运行。
7.13.10.3. 在 CA 上在没有 OCSP 的情况下启用对等证书状态检查 复制链接链接已复制到粘贴板!
可以在启动时将 CA 配置为具有所需的证书(例如,CA 的 LDAP 服务器证书)以使用 CRL 分发点,以避免在启动过程中出现 chicken 和 egg 问题(请参阅 下为 CRL 分发点配置支持)。
启动后,CA 可以依赖 OCSP 来支持撤销检查,就像其他 CS 子系统一样。
证书撤销验证顺序和预期
CRL 发布点和 OCSP 扩展在 CS 子系统中的撤销验证过程中处理,如下所示:
如果证书中只有 CRL 发布点:
它会根据 CRL 分发点检索/关联/关联验证
- 如果证书位于 CRL: fail/revoked 中
- 如果证书不在 CRL 中: good
如果 CRL 分发点中的 URL 不可访问,则被视为 bad
-
fail/revoked (与未选择的另一个选项:Ignored/unknown)
请注意,当 ocsp-aia 无法访问时,它的方式略有不同
-
fail/revoked (与未选择的另一个选项:Ignored/unknown)
如果证书中只存在 OCSP-aia :
它会根据 OCSP 响应从 OCSP 指向 OCSP 验证,由 OCSP-aia 验证
- 如果在 OCSP Responder: fail/revoked 的 CRL 中找到证书
- 如果在 OCSP Responder 的 CRL 中没有找到证书: good
如果 OCSP-aia 中的 URL 无法访问,则被视为 bad
-
bad Certificate
请注意,当 CRL 分发点无法访问时,它的方式略有不同
-
bad Certificate
如果证书中存在 OCSP-aia 和 CRL 分发点:
- OCSP-aia 具有优先权:即 Good 或 Bad
如果 OCSP-aia 中的 URL 无法访问,CRL 发布接管
- 如果 CRL 分发点中的 URL 无法访问,则被视为 Fail/revoked
7.13.11. 更新密码列表 复制链接链接已复制到粘贴板!
在作为服务器或作为客户端时,红帽认证系统允许对可接受的密码设置限制。这些加密控制在不同的位置配置。
当 RHCS 实例接受来自另一个实体的请求时,它充当服务器。例如:
- 当 RHCS cli 与 CA 进行证书注册时(在这种情况下,CA 是服务器)
- 当 RHCS 管理员使用 pkiconsole 与 CA 通信时(本例中为 CA,CA 是服务器)
- 当 CA 与 KRA 对话进行密钥归档时(本例中为 KRA,KRA 是服务器,CA 是客户端)
当 RHCS 实例试图连接到其他服务器时,RHCS 实例充当客户端。例如:
- 当 CA 与 KRA 对话进行密钥归档时(在这种情况下,CA 是 KRA 是服务器的客户端)
- 当 CA 与内部 LDAP 数据库通信时(在这种情况下,CA 是目录服务器是服务器)
以下小节介绍了如何为这些不同场景配置密码。
7.13.11.1. 为充当服务器的 CS 实例配置密码 复制链接链接已复制到粘贴板!
给定实例的所需密码集合由 < CS 实例目录> /conf/server.xml 文件中的 SSLHostConfig 元素定义。
按照以下说明配置每个 CS 实例。
在编辑前备份原始 server.xml 文件,例如 server.xml.orig。
-
编辑
server.xml文件,导航到主 SSL 端口的 Connector 声明,并找到 SSLHostConfig 元素。 使用以下配置修改 SSLHostConfig 元素:
<SSLHostConfig sslProtocol="TLS" protocols="TLSv1.2" certificateVerification="optional" ciphers="ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384">
<SSLHostConfig sslProtocol="TLS" protocols="TLSv1.2" certificateVerification="optional" ciphers="ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384">Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以上加密列表表示此 RHCS 版本中以 OpenSSL 格式声明的密码集合,其中:
-
cipher=" … ": 建立所需的受限密码(如 TLS)。在这个格式中,密码名称以冒号分开。 -
protocols=" … ": 建立您需要的 TLS 版本(如 1.2)。
-
7.13.11.2. 为作为客户端的 CS 实例配置密码 复制链接链接已复制到粘贴板!
当 CS 实例充当客户端时,在实例的 CS.cfg 配置文件中添加所需的密码列表。根据角色配置所有客户端实例。
在编辑前备份原始 CS.cfg 文件,例如 CS.cfg.orig。
当 CS 实例充当其内部 LDAP 数据库的客户端时。
在 <instance directory> / <instance type> /conf/CS.cfg文件中添加以下行:tcp.clientCiphers=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
tcp.clientCiphers=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意为确保内部 LDAP 数据库启用了所需的密码,请按照 为 DS 实例配置密码。
当 CA 实例充当 KRA 的客户端时。
在 <instance directory> /ca/conf/CS.cfg文件中添加以下行:ca.connector.KRA.clientCiphers=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
ca.connector.KRA.clientCiphers=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当 TPS 实例充当 CA、KRA 或 TKS 的客户端时。
在 <instance directory> /tps/conf/CS.cfg文件中添加以下行:tps.connector.<ca|kra|tks id>.clientCiphers=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
tps.connector.<ca|kra|tks id>.clientCiphers=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您必须重启每个服务器实例才能使修改生效,例如:
pki-server restart rhcs10-RSA-RootCA
# pki-server restart rhcs10-RSA-RootCA
pki-server restart rhcs10-RSA-SubCA
# pki-server restart rhcs10-RSA-SubCA
pki-server restart rhcs10-RSA-OCSP-rootca
# pki-server restart rhcs10-RSA-OCSP-rootca
pki-server restart rhcs10-RSA-OCSP-subca
# pki-server restart rhcs10-RSA-OCSP-subca
pki-server restart rhcs10-RSA-KRA
# pki-server restart rhcs10-RSA-KRA
或者,如果使用 Nuxwdog watchdog:
systemctl restart rhcs10-RSA-RootCA
# systemctl restart rhcs10-RSA-RootCA
systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-SubCA.service
# systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-SubCA.service
systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-rootca.service
# systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-rootca.service
systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-subca.service
# systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-subca.service
systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-KRA.service
# systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-KRA.service
…
7.13.11.3. 为 DS 实例配置密码 复制链接链接已复制到粘贴板!
默认情况下,Directory 服务器实例会继承操作系统上启用的密码。如果要设置它以便密码列表与证书系统的名称匹配,请对每个 DS 实例执行以下步骤:
在 DS 主机 rhds11.example.com 上:
启用预期的密码(使用 DS 实例的非 SSL 端口):
dsconf -D "cn=Directory Manager" ldap://rhds11.example.com:7389 security ciphers set "+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,+TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,+TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
# dsconf -D "cn=Directory Manager" ldap://rhds11.example.com:7389 security ciphers set "+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,+TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,+TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启 DS 实例:
dsctl slapd-CC-RSA-SubCA-LDAP stop
# dsctl slapd-CC-RSA-SubCA-LDAP stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow dsctl slapd-CC-RSA-SubCA-LDAP start
# dsctl slapd-CC-RSA-SubCA-LDAP startCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过列出启用的密码来验证:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.13.12. 为连接到 CS 时需要 TLS 相互身份验证 复制链接链接已复制到粘贴板!
默认情况下,红帽认证系统已经要求角色用户操作通过 TLS mutual 身份验证插件进行 TLS mutual 身份验证,同时,同时允许一些非角色操作仅通过 TLS 服务器身份验证来处理一些非角色操作。TLS mutual 身份验证为服务器连接器提供更强大的身份验证。以下流程允许站点使证书系统实例无法被无法为 TLS 握手提供证书的客户端访问。
在安装所有所需证书系统实例之前,不要执行本节中的步骤。执行此步骤后,您将需要恢复更改,以防稍后想要安装更多证书系统实例。
流程
通过修改 server.xml 配置文件来启用 TLS mutual 身份验证。
在编辑前备份原始 server.xml 文件,例如 server.xml.orig。
-
编辑
server.xml文件并搜索certificateVerification=参数。 将参数值从
optional改为required:certificateVerification=required
certificateVerification=requiredCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存并重启每个服务器实例以使修改生效。
增强 CS 实例后,务必要注意,在 TLS 握手时,通常不需要 TLS mutual 身份验证的操作需要提供有效的客户端证书。受此问题影响的示例操作是使用 CMCSharedToken 注册,一些 pki 命令通常不需要 TLS mutual 身份验证。
要让
CMCSharedToken正常工作,您需要向用户预签发证书,然后在HttpClient调用时编辑HttpClient配置文件,使其包含以下内容:clientmode=true nickname=<client cert that was issued and imported>
clientmode=true nickname=<client cert that was issued and imported>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为了正常工作,
pki命令现在需要提供有效的客户端证书:例如,最初,
ca-cert-find命令不需要相互身份验证:pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db/ -c SECret.123 -p 31443 ca-cert-find
# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db/ -c SECret.123 -p 31443 ca-cert-findCopy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,对于新限制,您需要执行以下操作:
pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db/ -c SECret.123 -p 31443 -n 'SubCA_AdminV' ca-cert-find
# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db/ -c SECret.123 -p 31443 -n 'SubCA_AdminV' ca-cert-findCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下列表显示了属于此类别的
pki命令:-
pki client-cert-request -
pki ca-authority-find -
pki ca-authority-show -
pki ca-cert-find -
pki ca-cert-show -
pki ca-cert-export -
pki ca-cert-status -
pki ca-cert-request-show -
pki ca-cert-request-submit -
pki ca-cert-request-profile-find -
pki ca-cert-request-profile-show -
pki ca-cert-signing-show -
pki ca-cert-signing-export -
pki ca-cert-transport-show -
pki ca-cert-transport-export -
pki ca-feature-find -
pki ca-feature-show
-
其他命令可能属于相同的类别,需要类似对待命令。
7.13.13. 启用从 CS 到 DS 的 TLS 相互身份验证 复制链接链接已复制到粘贴板!
在安装 CS 子系统时配置了基本的 TLS 服务器身份验证后,您必须选择从给定子系统到 LDAP 服务器启用 TLS mutual 身份验证(也称为客户端身份验证)。
本节需要安装并运行 CS 实例。如果您使用了临时 LDAP 服务器证书(如果是 CA),请首先将其替换为以下 :
- 第 7.5.1 节 “替换临时 DS 证书(RootCA)” 作为 RootCA。
- 第 7.8.2 节 “替换临时 DS 证书(SubCA)” 用于 SubCA。
这些步骤将在安装完成后执行。
在 CS 端,有两个部分可用于设置 mutual 身份验证,第一个在 DS 端。
DS 上的配置
作为第一部分,我们需要配置 LDAP 目录,使其需要 TLS mutual 身份验证。
注意以下几点:
-
pkispawn已在其内部目录服务器上自动创建一个pkidbuser,其中 CS 实例的"子系统证书" (如subsystemCert cert-pki-ca)存储在用户条目中。因此,不需要为 TLS 客户端身份验证创建另一个 LDAP 用户或其他证书。 为
/etc/dirsrv/slapd-instance_name/certmap.conf创建内容时,请使用以下格式:certmap rhcs <certificate issuer DN> rhcs:CmapLdapAttr seeAlso rhcs:verifyCert on
certmap rhcs <certificate issuer DN> rhcs:CmapLdapAttr seeAlso rhcs:verifyCert onCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
certmap rhcs CN=CA Signing Certificate,OU=pki-tomcat-ca,O=pki-tomcat-ca-SD rhcs:CmapLdapAttr seeAlso rhcs:verifyCert on
certmap rhcs CN=CA Signing Certificate,OU=pki-tomcat-ca,O=pki-tomcat-ca-SD rhcs:CmapLdapAttr seeAlso rhcs:verifyCert onCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置后,重启 Directory 服务器。例如:
dsctl slapd-CC-RSA-SubCA-LDAP restart
# dsctl slapd-CC-RSA-SubCA-LDAP restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在 CS 上配置
作为第二部分,我们需要配置 Red Hat Certificate System 实例,以便它知道使用正确的身份验证类型(即 SslClientAuth 而不是 BasicAuth),以及哪个端口和证书将用于使用 TLS mutual 身份验证与其内部 LDAP 服务器通信。这包括编辑位于 < instance directory> / <subsystem type> /conf/ 文件。例如 CS.cfg 的 RHCS 实例的 CS.cfg/var/lib/pki/instance_name/ca/conf/CS.cfg
停止您要配置的 CS 实例:
pki-server stop rhcs10-<INSTANCE>
# pki-server stop rhcs10-<INSTANCE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,如果使用 Nuxwdog watchdog:
systemctl stop pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.service
# systemctl stop pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
CS.cfg中,请将 RHCS 实例的子系统证书别名添加到internaldb.ldapauth.clientCertNickname中,并删除两个未使用的条目:internaldb.ldapauth.bindDN internaldb.ldapauth.bindPWPrompt
internaldb.ldapauth.bindDN internaldb.ldapauth.bindPWPromptCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如下所示:
重启 CS 实例:
pki-server start rhcs10-<INSTANCE>
# pki-server start rhcs10-<INSTANCE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,如果使用 Nuxwdog watchdog:
systemctl start pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.service
# systemctl start pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
您必须配置 internaldb.basedn 和 internaldb.database 参数,以匹配特定的 LDAP 实例。
为了合规,内部db.ldapauth.authtype=SslClientAuth 和 internaldb.ldapconn.secureConn=true 必须被设置,并且 internaldb.ldapauth.clientCertNickname 的值必须与 TLS 客户端证书的 nickname 匹配,才能针对带有在 nssdb 中的 LDAP 进行身份验证。
可以根据需要更改所有其他值,以反映您的环境或可用性需求。
7.13.14. 更新 supported_groups TLS 扩展 复制链接链接已复制到粘贴板!
认证颁发机构版本 2.1 的保护配置文件 不允许为 TLS 密钥交换的较新的(及更安全)命名组。为了满足此要求,以下流程描述了如何禁用这些组:
-
首先,使用必要的修改根据现有策略(
/usr/share/crypto-policies/FIPS.pol)构建一组策略。这将相应地更新另一个配置文件(/etc/crypto-policies/back-ends/nss.config)。 -
然后,有关如何进一步定制生成的更改的配置文件(
/etc/crypto-policies/back-ends/nss.config)以获得所需结果的说明。
在安装所有所需的 CS 实例之前,不要执行本节中的步骤。执行此步骤后,如果稍后要安装更多的 CS 实例,则需要在继续前恢复更改:
update-crypto-policies --set FIPS
# update-crypto-policies --set FIPS
流程
关闭所有证书系统服务器。例如:
pki-server stop rhcs10-<INSTANCE>
# pki-server stop rhcs10-<INSTANCE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,如果使用 Nuxwdog watchdog:
systemctl stop pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.service
# systemctl stop pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查找系统作为以下策略的文件系统:
update-crypto-policies --show
# update-crypto-policies --showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果遵循安装过程,您应该看到"FIPS"作为命令输出。
将当前的策略复制到我们的新的自定义策略文件中,以进行修改:
cp /usr/share/crypto-policies/policies/FIPS.pol /etc/crypto-policies/policies/CC-FIPS.pol
# cp /usr/share/crypto-policies/policies/FIPS.pol /etc/crypto-policies/policies/CC-FIPS.polCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑自定义策略文件,例如:
vi /etc/crypto-policies/policies/CC-FIPS.pol
# vi /etc/crypto-policies/policies/CC-FIPS.polCopy to Clipboard Copied! Toggle word wrap Toggle overflow 进行以下修改,然后保存文件:
更改
groups参数的分配:group = SECP256R1 SECP384R1 SECP521R1 \ FFDHE-2048 FFDHE-3072 FFDHE-4096 FFDHE-6144 FFDHE-8192
group = SECP256R1 SECP384R1 SECP521R1 \ FFDHE-2048 FFDHE-3072 FFDHE-4096 FFDHE-6144 FFDHE-8192Copy to Clipboard Copied! Toggle word wrap Toggle overflow 至
group = SECP256R1 SECP384R1 SECP521R1
group = SECP256R1 SECP384R1 SECP521R1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更改
key_exchange参数的分配:key_exchange = ECDHE DHE DHE-RSA PSK DHE-PSK ECDHE-PSK
key_exchange = ECDHE DHE DHE-RSA PSK DHE-PSK ECDHE-PSKCopy to Clipboard Copied! Toggle word wrap Toggle overflow 至
key_exchange = ECDHE DHE PSK DHE-PSK ECDHE-PSK
key_exchange = ECDHE DHE PSK DHE-PSK ECDHE-PSKCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更改
min_dh_size参数的分配min_dh_size = 2048
min_dh_size = 2048Copy to Clipboard Copied! Toggle word wrap Toggle overflow 至
min_dh_size = 176384
min_dh_size = 176384Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注册自定义站点策略:
update-crypto-policies --set CC-FIPS
# update-crypto-policies --set CC-FIPSCopy to Clipboard Copied! Toggle word wrap Toggle overflow nss.config文件反映update_crypto-policies -set对自定义策略文件的调用后的更改。
此流程的第二部分包括进一步对nss.config文件的更改。编辑
nss.config文件,例如:vi /etc/crypto-policies/back-ends/nss.config
# vi /etc/crypto-policies/back-ends/nss.configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
allow=字符串的分配config参数下,直接在dtls-version-min=dtls1.2设置后插入以下字符串:tls-version-max=tls1.2:dtls-version-max=dtls1.2
tls-version-max=tls1.2:dtls-version-max=dtls1.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成的
config行应类似如下:config="disallow=ALL allow=HMAC-SHA256:HMAC-SHA1:HMAC-SHA384:HMAC-SHA512:SECP256R1:SECP384R1:SECP521R1:aes256-gcm:aes256-cbc:aes128-gcm:aes128-cbc:SHA256:SHA384:SHA512:SHA224:ECDHE-RSA:ECDHE-ECDSA:tls-version-min=tls1.2:dtls-version-min=dtls1.2:tls-version-max=tls1.2:dtls-version-max=dtls1.2:DH-MIN=176384:DSA-MIN=2048:RSA-MIN=2048"
config="disallow=ALL allow=HMAC-SHA256:HMAC-SHA1:HMAC-SHA384:HMAC-SHA512:SECP256R1:SECP384R1:SECP521R1:aes256-gcm:aes256-cbc:aes128-gcm:aes128-cbc:SHA256:SHA384:SHA512:SHA224:ECDHE-RSA:ECDHE-ECDSA:tls-version-min=tls1.2:dtls-version-min=dtls1.2:tls-version-max=tls1.2:dtls-version-max=dtls1.2:DH-MIN=176384:DSA-MIN=2048:RSA-MIN=2048"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动或重启任何基于 nss 的应用程序/服务器/客户端以查看应用更改。例如:
pki-server start rhcs10-RSA-RootCA
# pki-server start rhcs10-RSA-RootCACopy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server restart rhcs10-RSA-SubCA
# pki-server restart rhcs10-RSA-SubCACopy to Clipboard Copied! Toggle word wrap Toggle overflow …
或者,如果使用 Nuxwdog Watchdog :
systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-RootCA.service
# systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-RootCA.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-SubCA.service
# systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-SubCA.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-rootca.service
# systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-rootca.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-subca.service
# systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-subca.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-KRA.service
# systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-KRA.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow …
7.13.15. 启用访问横幅 复制链接链接已复制到粘贴板!
在 rhcs10.example.com 上启用或禁用访问标语:
-
通过创建
/etc/pki/instance_name/banner.txt文件并输入要显示的文本来启用横幅。横幅文本必须使用 UTF-8 格式。 如果您需要禁用现有的访问横幅,可以删除或重命名
/etc/pki/instance_name/banner.txt文件。例如:mv /etc/pki/instance_name/banner.txt /etc/pki/instance_name/banner.txt.UNUSED
# mv /etc/pki/instance_name/banner.txt /etc/pki/instance_name/banner.txt.UNUSEDCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证:
验证横幅不包含无效的字符:
pki-server banner-validate -i instance_name --------------- Banner is valid ---------------
# pki-server banner-validate -i instance_name --------------- Banner is valid ---------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示当前配置的横幅:
pki-server banner-show -i instance_name
# pki-server banner-show -i instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.13.16. 确定产品版本 复制链接链接已复制到粘贴板!
Red Hat Certificate System 产品版本存储在 /usr/share/pki/CS_SERVER_VERSION 文件中。
显示安装的 Red Hat Certificate System 服务器的版本:
cat /usr/share/pki/CS_SERVER_VERSION Red Hat Certificate System 10.4.3
# cat /usr/share/pki/CS_SERVER_VERSION
Red Hat Certificate System 10.4.3
安装并运行服务器后,您可以通过从浏览器访问以下 URL 来查找每个实例的产品版本:
-
http://host_name:port_number/ca/admin/ca/getStatus -
http://host_name:port_number/kra/admin/kra/getStatus -
http://host_name:port_number/ocsp/admin/ocsp/getStatus -
http://host_name:port_number/tks/admin/tks/getStatus -
http://host_name:port_number/tps/admin/tps/getStatus
请注意,每个组件都是一个单独的软件包,因此可以有单独的版本号。以上将显示每个当前运行的组件的版本号。