7.13. 安装后


本章论述了在子系统安装后发生的安装后任务。

使用 pkispawn 工具完成安装后,需要或强烈建议某些操作。此外,一些可选操作也很有帮助,具体取决于站点的首选项。

有关可选流程,请参阅 第 III 部分 “第 III 部分:配置红帽认证系统”。安装后的步骤包括:

对于必填或强烈建议的流程,请执行下面描述的操作。

重要

在启动或重启实例后,配置更改才会生效。通常,您应该确保在执行所有操作系统文件系统级安装后配置之前停止所有 CS 实例。完成后,您可以重启实例。

7.13.1. 为 RHCS 设置日期和时间

务必要为运行 RHCS 正确设置时间非常重要。系统时间始终保存在 协调世界时间 (UTC)中,并根据需要将应用程序转换为本地时间。本地时间是 您当前时区的实际时间,考虑 节省时间 (DST)。

timedatectl 工具作为 systemd 系统和服务管理器的一部分提供,允许您检查和更改系统时钟的配置。

  • 更改当前时间:

    # timedatectl set-time HH:MM:SS
    Copy to Clipboard Toggle word wrap

    HH 替换为一小时,MM 替换为一分钟,SS 替换为第二个,所有以两位形式键入的 SS。

  • 更改当前日期:

    # timedatectl set-time YYYY-MM-DD
    Copy to Clipboard Toggle word wrap

    YYYY 替换为四位数年,MM 替换为两位月,DD 替换为月份的两位天。

  • 设置时区:

    1. 首先,显示可用时区列表:

      # timedatectl list-timezones
      Copy to Clipboard Toggle word wrap
    2. 根据以上列表,使用以下命令设置所需的时区:

      # timedatectl set-timezone <your_preferred_timezone>
      Copy to Clipboard Toggle word wrap

操作系统审计时间更改。更多信息请参阅 第 13.2.1.3 节 “审计时间更改事件”

7.13.2. 配置会话超时

系统中存在各种超时配置,它们可能会影响 TLS 会话在终止前可以保持闲置的时长。详情请查看 第 9.4.2 节 “会话超时”

默认情况下,在注册配置集中设置的 SubjectKeyIdentifier 扩展将使用 SHA-1 计算。要将其设置为其他算法,您需要编辑注册配置文件。例如:

  1. 为证书打开注册配置文件:

    # vi /var/lib/pki/rhcs10-RSA-SubCA/ca/profiles/ca/caCMCcaCert.cfg
    Copy to Clipboard Toggle word wrap
  2. 添加以下参数:

    policyset.caCertSet.8.default.params.messageDigest=SHA-256
    Copy to Clipboard Toggle word wrap
  3. 保存文件并重启 CA。
注意

确保 SubjectKeyIdentifierExtensionAuthorityKeyIdentifierExtension 之前。如果没有,只需调整 list 参数中的位置,例如,如果 8SubjectKeyIdentifierExtension,并且 4AuthorityKeyIdentifierExtension,则以下内容将在列表中的 4 之前放置 8

policyset.caCertSet.list=1,2,3,8,4,5,6,9,10
Copy to Clipboard Toggle word wrap

7.13.4. CMC 注册和吊销(CA)的配置

您可以通过 CMC 进行证书注册和吊销。该配置在 第 9.6 节 “配置 CMC” 中进行了描述。具体来说:

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 命令停止它。

流程

  1. cms.tokenList=<HSM_TOKEN_NAME&gt; 参数添加到 CS.cfg 中,例如:

    # cat /var/lib/pki/rhcs10-RSA-RootCA/ca/conf/CS.cfg | grep cms.tokenList
    
    cms.tokenList=NHSM-CONN-XC
    Copy to Clipboard Toggle word wrap
  2. 将密码文件移动到另一个目录中:

    # mv /var/lib/pki/rhcs10-RSA-RootCA/conf/password.conf ~/<YOUR_PREFERRED_DIR>/
    Copy to Clipboard Toggle word wrap
  3. 启用 Nuxwdog 服务:

    # pki-server instance-nuxwdog-enable rhcs10-RSA-RootCA
    ---------------------------
    Nuxwdog enabled for instance rhcs10-RSA-RootCA.
    ---------------------------
    Copy to Clipboard Toggle word wrap
  4. 使用 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: *****
    Copy to Clipboard Toggle word wrap

验证步骤:

  • 使用 Nuxwdog 检查 RootCA 实例的状态:

    # systemctl status pki-tomcatd-nuxwdog@rhcs10-RSA-RootCA.service
    
    ● pki-tomcatd-nuxwdog@rhcs10-RSA-RootCA.service - PKI Tomcat Server rhcs10-RSA-RootCA
    Started by Nuxwdog
      Loaded: loaded (/lib/systemd/system/pki-tomcatd-nuxwdog@.service; enabled; vendor preset: disabled)
      Active: active (running) since …
    Copy to Clipboard Toggle word wrap

7.13.5.2. 为 SubCA 启用 Nuxwdog

以下流程提供在 SubCA 实例上启用 Nuxwdog 所需的步骤。

先决条件

  • 以 root 用户身份登录 rhcs10.example.com
  • 确保实例已停止。如果没有,则使用 systemctl stop pki-tomcatd@rhcs10-RSA-SubCA.service 命令停止它。

流程

  1. cms.tokenList=<HSM_TOKEN_NAME&gt; 参数添加到 CS.cfg 中,例如:

    # cat /var/lib/pki/rhcs10-RSA-SubCA/ca/conf/CS.cfg | grep cms.tokenList
    
    cms.tokenList=NHSM-CONN-XC
    Copy to Clipboard Toggle word wrap
  2. 将密码文件移动到另一个目录中:

    # mv /var/lib/pki/rhcs10-RSA-SubCA/conf/password.conf ~/<YOUR_PREFERRED_DIR>/
    Copy to Clipboard Toggle word wrap
  3. 启用 Nuxwdog 服务:

    # pki-server instance-nuxwdog-enable rhcs10-RSA-SubCA
    ---------------------------
    Nuxwdog enabled for instance rhcs10-RSA-SubCA.
    ---------------------------
    Copy to Clipboard Toggle word wrap
  4. 使用 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: ******
    Copy to Clipboard Toggle word wrap

验证步骤:

  • 使用 Nuxwdog 检查 SubCA 实例的状态:

    # systemctl status pki-tomcatd-nuxwdog@rhcs10-RSA-SubCA.service
    
    ● pki-tomcatd-nuxwdog@rhcs10-RSA-SubCA.service - PKI Tomcat Server rhcs10-RSA-SubCA
    Started by Nuxwdog
      Loaded: loaded (/lib/systemd/system/pki-tomcatd-nuxwdog@.service; enabled; vendor preset: disabled)
      Active: active (running) since …
    Copy to Clipboard Toggle word wrap

7.13.5.3. 为 OCSP 启用 Nuxwdog

以下流程提供了在 OCSP 实例上启用 Nuxwdog 所需的步骤。

先决条件

  • 以 root 用户身份登录 rhcs10.example.com
  • 确保实例已停止。如果没有,请停止它,例如,对相关实例使用 systemctl stop pki-tomcatd@rhcs10-RSA-OCSP-rootca.servicesystemctl stop pki-tomcatd@rhcs10-RSA-OCSP-subca.service

流程

例如,对于 RootCA 的 OCSP:

  1. cms.tokenList=<TOKEN_NAME&gt; 参数添加到 CS.cfg 中,例如:

    # cat /var/lib/pki/rhcs10-RSA-OCSP-rootca/ocsp/conf/CS.cfg | grep cms.tokenList
    
    cms.tokenList=NHSM-CONN-XC
    Copy to Clipboard Toggle word wrap
  2. 将密码文件移动到另一个目录中:

    # mv /var/lib/pki/rhcs10-RSA-OCSP-rootca/conf/password.conf ~/<YOUR_PREFERRED_DIR>/
    Copy to Clipboard Toggle word wrap
  3. 启用 Nuxwdog 服务:

    # pki-server instance-nuxwdog-enable rhcs10-RSA-OCSP-rootca/
    ---------------------------
    Nuxwdog enabled for instance rhcs10-RSA-OCSP-rootca/.
    ---------------------------
    Copy to Clipboard Toggle word wrap
  4. 使用 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: *****
    Copy to Clipboard Toggle word wrap
  5. 通过调整实例名称(例如,使用 rhcs10-RSA-OCSP-subca ),为 SubCA 的 OCSP 重复上述步骤。

验证

  • 使用 Nuxwdog 检查 OCSP 实例的状态:

    # systemctl status pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-rootca.service
    
    ● pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-rootca.service - PKI Tomcat Server rhcs10-RSA-OCSP-rootca/
    Started by Nuxwdog
      Loaded: loaded (/lib/systemd/system/pki-tomcatd-nuxwdog@.service; enabled; vendor preset: disabled)
      Active: active (running) since …
    Copy to Clipboard Toggle word wrap
    # systemctl status pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-subca.service
    
    ● pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-subca/.service - PKI Tomcat Server rhcs10-RSA-OCSP-subca/
    Started by Nuxwdog
      Loaded: loaded (/lib/systemd/system/pki-tomcatd-nuxwdog@.service; enabled; vendor preset: disabled)
      Active: active (running) since …
    Copy to Clipboard Toggle word wrap

7.13.5.4. 为 KRA 启用 Nuxwdog

以下流程提供在 KRA 实例上启用 Nuxwdog 所需的步骤。

先决条件

  • 以 root 用户身份登录 rhcs10.example.com
  • 确保实例已停止。如果没有,则使用 systemctl stop pki-tomcatd@rhcs10-RSA-KRA.service 命令停止它。

流程

  1. CS .cfg 文件中添加 cms.tokenList=<TOKEN_NAME > 参数,例如:

    # cat /var/lib/pki/rhcs10-RSA-KRA/kra/conf/CS.cfg | grep cms.tokenList
    
    cms.tokenList=NHSM-CONN-XC
    Copy to Clipboard Toggle word wrap
  2. 将密码文件移动到另一个目录中:

    # mv /var/lib/pki/rhcs10-RSA-KRA/conf/password.conf ~/<YOUR_PREFERRED_DIR>/
    Copy to Clipboard Toggle word wrap
  3. 启用 Nuxwdog 服务:

    # pki-server instance-nuxwdog-enable rhcs10-RSA-KRA
    ---------------------------
    Nuxwdog enabled for instance rhcs10-RSA-KRA.
    ---------------------------
    Copy to Clipboard Toggle word wrap
  4. 使用 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: *****
    Copy to Clipboard Toggle word wrap

验证步骤:

  • 使用 Nuxwdog 检查 KRA 实例的状态:

    # systemctl status pki-tomcatd-nuxwdog@rhcs10-RSA-KRA.service
    
    ● pki-tomcatd-nuxwdog@rhcs10-RSA-KRA.service - PKI Tomcat Server rhcs10-RSA-KRA
    Started by Nuxwdog
      Loaded: loaded (/lib/systemd/system/pki-tomcatd-nuxwdog@.service; enabled; vendor preset: disabled)
      Active: active (running) since …
    Copy to Clipboard Toggle word wrap

7.13.5.5. 为 TKS 启用 Nuxwdog

以下流程提供了在 TKS 实例上启用 Nuxwdog 所需的步骤。

先决条件

  • 以 root 用户身份登录 rhcs10.example.com
  • 确保实例已停止。如果没有,则使用 systemctl stop pki-tomcatd@rhcs10-RSA-TKS.service 命令停止它。

流程

  1. CS .cfg 文件中添加 cms.tokenList=<TOKEN_NAME > 参数,例如:

    # cat /var/lib/pki/rhcs10-RSA-TKS/TKS/conf/CS.cfg | grep cms.tokenList
    
    cms.tokenList=NHSM-CONN-XC
    Copy to Clipboard Toggle word wrap
  2. 将密码文件移动到另一个目录中:

    # mv /var/lib/pki/rhcs10-RSA-TKS/conf/password.conf ~/<YOUR_PREFERRED_DIR>/
    Copy to Clipboard Toggle word wrap
  3. 启用 Nuxwdog 服务:

    # pki-server instance-nuxwdog-enable rhcs10-RSA-TKS
    ---------------------------
    Nuxwdog enabled for instance rhcs10-RSA-TKS.
    ---------------------------
    Copy to Clipboard Toggle word wrap
  4. 使用 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: *****
    Copy to Clipboard Toggle word wrap

验证步骤:

  • 使用 Nuxwdog 检查 TKS 实例的状态:

    # systemctl status pki-tomcatd-nuxwdog@rhcs10-RSA-TKS.service
    
    ● pki-tomcatd-nuxwdog@rhcs10-RSA-TKS.service - PKI Tomcat Server rhcs10-RSA-TKS
    Started by Nuxwdog
      Loaded: loaded (/lib/systemd/system/pki-tomcatd-nuxwdog@.service; enabled; vendor preset: disabled)
      Active: active (running) since …
    Copy to Clipboard Toggle word wrap

7.13.5.6. 为 TPS 启用 Nuxwdog

以下流程提供了在 TPS 实例中启用 Nuxwdog 所需的步骤。

先决条件

  • 以 root 用户身份登录 rhcs10.example.com
  • 确保实例已停止。如果没有,则使用 systemctl stop pki-tomcatd@rhcs10-RSA-TPS.service 命令停止它。

流程

  1. CS .cfg 文件中添加 cms.tokenList=<TOKEN_NAME > 参数,例如:

    # cat /var/lib/pki/rhcs10-RSA-TPS/TPS/conf/CS.cfg | grep cms.tokenList
    
    cms.tokenList=NHSM-CONN-XC
    Copy to Clipboard Toggle word wrap
  2. 将密码文件移动到另一个目录中:

    # mv /var/lib/pki/rhcs10-RSA-TPS/conf/password.conf ~/<YOUR_PREFERRED_DIR>/
    Copy to Clipboard Toggle word wrap
  3. 启用 Nuxwdog 服务:

    # pki-server instance-nuxwdog-enable rhcs10-RSA-TPS
    ---------------------------
    Nuxwdog enabled for instance rhcs10-RSA-TPS.
    ---------------------------
    Copy to Clipboard Toggle word wrap
  4. 使用 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: *****
    Copy to Clipboard Toggle word wrap

验证步骤:

  • 使用 Nuxwdog 检查 TPS 实例的状态:

    # systemctl status pki-tomcatd-nuxwdog@rhcs10-RSA-TPS.service
    
    ● pki-tomcatd-nuxwdog@rhcs10-RSA-TPS.service - PKI Tomcat Server rhcs10-RSA-TPS
    Started by Nuxwdog
      Loaded: loaded (/lib/systemd/system/pki-tomcatd-nuxwdog@.service; enabled; vendor preset: disabled)
      Active: active (running) since …
    Copy to Clipboard Toggle word wrap

7.13.6. 使用客户端身份验证配置 pkiconsole 登录

本节论述了使用客户端身份验证配置 pkiconsole 登录。在以下配置中,实例可以是 CA、OCSP、KRA 或 TKS。

先决条件配置

您必须将每个 CS 实例配置为允许 pkiconsole TLS 连接。

  1. 以 root 用户身份登录 rhcs10.example.com
  2. 停止需要使用客户端身份验证进行控制台登录的服务器。

    # pki-server stop rhcs10-<INSTANCE>
    Copy to Clipboard Toggle word wrap

    或者,如果使用 Nuxwdog watchdog:

    # systemctl stop pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.service
    Copy to Clipboard Toggle word wrap
  3. 更改位于 /var/lib/pki/ <instance name> / &lt;subsystem>/conf 的目录。例如,如果改为 RootCA conf 目录:

    # cd /var/lib/pki/rhcs10-RSA-RootCA/ca/conf
    Copy to Clipboard Toggle word wrap
  4. 修改 CS.cfg 文件,将 authTypepwd 改为 sslclientauth,例如:

    authType=sslclientauth
    Copy to Clipboard Toggle word wrap
    注意

    另外,您可以使用 config-set 命令将 authType=sslclientauth 行添加到 CS.cfg 中。例如,使用 ca-config-set 添加到 RootCA 中:

    # pki-server ca-config-set -i rhcs10-RSA-RootCA authType sslclientauth
    Copy to Clipboard Toggle word wrap
  5. 启动服务器:

    # pki-server start rhcs10-<INSTANCE>
    Copy to Clipboard Toggle word wrap

    或者,如果使用 Nuxwdog watchdog:

    # systemctl start pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.service
    Copy to Clipboard Toggle word wrap

流程

每个 RHCS 管理员都需要在使用带 TLS 连接的 pkiconsole 之前执行一些设置。

  1. 以非 root admin 用户身份登录 rhcs10.example.com (例如: jgenie)。
  2. 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 中。
  3. 如果不存在,请创建一个 nssdb:

    $ pki -d /home/jgenie/.redhat-idm-console -c SECret.123 client-init
    Copy to Clipboard Toggle word wrap
  4. 导入角色用户证书(例如 /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
    Copy to Clipboard Toggle word wrap
  5. 导入 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"
    -------------------------------------
    Copy to Clipboard Toggle word wrap
    $ 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 Toggle word wrap

验证:

  • 验证用于对服务器进行身份验证的 admin 用户证书。例如:

    $ pki -U https://rhcs10.example.com:31443 -d /home/jgenie/.redhat-idm-console -c SECret.123 -n rsa_SubCA_AdminV ca-user-find
    Copy to Clipboard Toggle word wrap
    1. 验证 pkiconsole 是否可以使用客户端身份验证连接到 ca:

      1. 以 pki admin 用户身份登录(如 jgenie),例如:

        $ ssh -X jgenie@rhcs10.example.com
        Copy to Clipboard Toggle word wrap
      2. 运行 pkiconsole。例如:

        $ pkiconsole -d /home/jgenie/.redhat-idm-console -n rsa_SubCA_AdminV https://rhcs10.example.com:31443/ca
        Copy to Clipboard Toggle word wrap
注意

如果您看到错误 No X11 DISPLAY 变量,但该程序执行了在启动 pkiconsole 时需要它 的操作,请尝试以下步骤:

  1. 以 root 用户身份在 rhcs10.example.com 上安装 xauth

    # dnf install xauth
    Copy to Clipboard Toggle word wrap
  2. 重新以 RHCS admin 用户身份登录,以运行 pkiconsole。例如:

    # ssh -X jgenie@rhcs10.example.com
    Copy to Clipboard Toggle word wrap
    # pkiconsole -d /home/jgenie/.redhat-idm-console -n rsa_SubCA_AdminV https://rhcs10.example.com:31443/ca
    Copy to Clipboard Toggle word wrap

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

前提条件

  • 以 root 用户身份登录 rhcs10.example.com

流程

  1. 停止该实例。例如,对于 KRA:

    # pki-server stop rhcs10-RSA-KRA
    Copy to Clipboard Toggle word wrap

    或者,如果使用 Nuxwdog watchdog:

    # systemctl stop pki-tomcatd-nuxwdog@rhcs10-KRA.service
    Copy to Clipboard Toggle word wrap
  2. CS.cfg 文件中将 log.instance.SignedAudit.logSigning 属性设置为 true (默认为false )。例如:

    # vi /var/lib/pki/rhcs10-RSA-KRA/kra/conf/CS.cfg
    Copy to Clipboard Toggle word wrap
    log.instance.SignedAudit.logSigning=true
    Copy to Clipboard Toggle word wrap
  3. 启动实例。例如:

    # pki-server start rhcs10-RSA-KRA
    Copy to Clipboard Toggle word wrap

    或者,如果使用 Nuxwdog watchdog:

    # systemctl start pki-tomcatd-nuxwdog@rhcs10-KRA.service
    Copy to Clipboard Toggle word wrap
注意

您还可以通过 CLI 进行审计日志签名。请参阅安装指南中的"启用签名的审计日志记录"。

7.13.8. 检索审计日志文件(Auditors)

审核员(如 - rsa_SubCA_AuditV)可以按照以下流程访问签名的审计日志。

流程

  1. 审核员 身份(一个非 root 用户)登录到 rhcs10.example.com,例如 - aguru

    $ certutil -d /home/aguru/certs_db -L
    
    Certificate Nickname                      Trust Attributes
                                              SSL,S/MIME,JAR/XPI
    
    . . . Output omitted . . .
    
    rsa_SubCA_AuditV                          u,u,u
    CA Signing Cert - rhcs10-RSA-RootCA       CT,C,C
    Copy to Clipboard Toggle word wrap
  2. 列出可用的审计日志文件:

    $ pki -d /home/aguru/certs_db -n "rsa_SubCA_AuditV" -c SECret.123 -p 31443 -h `hostname` ca-audit-file-find
    -----------------
    1 entries matched
    -----------------
      File name: ca_audit
      Size: 1184345
    ----------------------------
    Number of entries returned 1
    ----------------------------
    Copy to Clipboard Toggle word wrap

    在本例中,只有一个文件 ca_audit,但您可以有多个审计日志文件。

  3. 作为审核员,检索审计日志文件并将其存储在本地:

    $ 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
    Copy to Clipboard Toggle word wrap

    如果您有多个日志文件,请逐一检索这些文件。

  4. 使用 AuditVerify 工具验证签名的审计日志:

    1. 将 SubCA 审计签名证书导入到 nssdb:

      $ pki -p 31443 -h `hostname` ca-cert-find --name "CA Audit Signing Certificate"
      ---------------
      1 entries found
      ---------------
        Serial Number: 0xe8e47bf
      
      . . . Output omitted . . .
      Copy to Clipboard Toggle word wrap
      $ 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 Toggle word wrap
    2. 以 chronological 顺序创建一个包含审计日志文件列表的文件:

      $ cat > /home/aguru/certs_db/audit.txt << EOF
      ca_audit
      EOF
      Copy to Clipboard Toggle word wrap
    3. 运行 auditVerify 工具:

      $ cd /home/aguru/certs_db/
      Copy to Clipboard Toggle word wrap
      $ AuditVerify -d /home/aguru/certs_db -n "SubCA Audit Signing Certificate" -a audit.txt
      Copy to Clipboard Toggle word wrap

7.13.9. 启用 OS 级别(工作环境)审计日志

auditd 日志记录框架提供了许多其他审计功能。这些操作系统级别(工作环境)审计日志直接由证书系统提供的补充功能。

先决条件

  • 在执行本节中的任何步骤前,请确保已安装了 audit 软件包:

    # dnf install audit
    Copy to Clipboard Toggle word wrap
重要

确保系统上存在文件 /etc/audit/rules.d/audit.rules,其内容如下:

# cat /etc/audit/rules.d/audit.rules
## First rule - delete all
-D
## Increase the buffers to survive stress events.
## Make this bigger for busy systems
-b 8192
## This determine how long to wait in burst of events
--backlog_wait_time 60000
## Set failure mode to syslog
-f 1
Copy to Clipboard Toggle word wrap

审计证书系统审计日志删除

要在删除审计日志时接收审计事件,您需要审计目标为证书系统日志的系统调用。

  1. 使用以下内容创建文件 /etc/audit/rules.d/rhcs-audit-log-deletion.rules

    -a always,exit -F arch=b32 -S unlink -F dir=/var/log/pki -F key=rhcs_audit_deletion
    -a always,exit -F arch=b32 -S rename -F dir=/var/log/pki -F key=rhcs_audit_deletion
    -a always,exit -F arch=b32 -S rmdir -F dir=/var/log/pki -F key=rhcs_audit_deletion
    -a always,exit -F arch=b32 -S unlinkat -F dir=/var/log/pki -F key=rhcs_audit_deletion
    -a always,exit -F arch=b32 -S renameat -F dir=/var/log/pki -F key=rhcs_audit_deletion
    -a always,exit -F arch=b64 -S unlink -F dir=/var/log/pki -F key=rhcs_audit_deletion
    -a always,exit -F arch=b64 -S rename -F dir=/var/log/pki -F key=rhcs_audit_deletion
    -a always,exit -F arch=b64 -S rmdir -F dir=/var/log/pki -F key=rhcs_audit_deletion
    -a always,exit -F arch=b64 -S unlinkat -F dir=/var/log/pki -F key=rhcs_audit_deletion
    -a always,exit -F arch=b64 -S renameat -F dir=/var/log/pki -F key=rhcs_audit_deletion
    Copy to Clipboard Toggle word wrap
  2. 然后重启 auditd 服务:

    # service auditd restart
    Copy to Clipboard Toggle word wrap

审计未授权证书系统使用 secret 密钥

要接收对证书系统 Secret 或私钥的所有访问权限的审计事件,您需要审核文件系统对 nssdb 的访问。

  1. 使用以下内容创建 /etc/audit/rules.d/rhcs-audit-nssdb-access.rules 文件,将 < instance name&gt; 替换为当前实例:

    -w /etc/pki/<instance name>/alias -p warx -k rhcs_audit_nssdb
    Copy to Clipboard Toggle word wrap
  2. 对于 /etc/pki/ &lt;instance name> /alias 中的每个文件(&lt;file >),将以下行添加到 /etc/audit/rules.d/rhcs-audit-nssdb-access.rules

    -w /etc/pki/<instance name>/alias/<file> -p warx -k rhcs_audit_nssdb
    Copy to Clipboard Toggle word wrap

    例如,如果 rhcs10-RSA-SubCA 实例上的文件为 cert8.db,key3.db,NHSM-CONN-XCcert8.db,NHSM-CONN-XCkey3.db, 和 secmod.db,则配置文件将包含:

    -w /etc/pki/rhcs10-RSA-SubCA/alias/ -p warx -k rhcs_audit_nssdb
    -w /etc/pki/rhcs10-RSA-SubCA/alias/ca.crt -p warx -k rhcs_audit_nssdb
    -w /etc/pki/rhcs10-RSA-SubCA/alias/cert9.db -p warx -k rhcs_audit_nssdb
    -w /etc/pki/rhcs10-RSA-SubCA/alias/key4.db -p warx -k rhcs_audit_nssdb
    -w /etc/pki/rhcs10-RSA-SubCA/alias/NHSM-CONN-XCcert9.db -p warx -k rhcs_audit_nssdb
    -w /etc/pki/rhcs10-RSA-SubCA/alias/NHSM-CONN-XCkey4.db -p warx -k rhcs_audit_nssdb
    -w /etc/pki/rhcs10-RSA-SubCA/alias/pkcs11.txt -p warx -k rhcs_audit_nssdb
    Copy to Clipboard Toggle word wrap
  3. 然后重启 auditd

    # service auditd restart
    Copy to Clipboard Toggle word wrap
注意

每当向同一系统添加新实例时,请扩展 /etc/audit/rules.d/rhcs-audit-nssdb-access.rules,以同样的方式包含新实例文件。

审计时间更改事件

要接收审计事件的更改,您需要审核系统调用访问,这可能会修改系统时间。

  1. 使用以下内容创建 /etc/audit/rules.d/rhcs-audit-rhcs_audit_time_change.rules 文件:

    -a always,exit -F arch=b32 -S adjtimex,settimeofday,stime -F key=rhcs_audit_time_change
    -a always,exit -F arch=b64 -S adjtimex,settimeofday -F key=rhcs_audit_time_change
    -a always,exit -F arch=b32 -S clock_settime -F a0=0x0 -F key=rhcs_audit_time_change
    -a always,exit -F arch=b64 -S clock_settime -F a0=0x0 -F key=rhcs_audit_time_change
    -a always,exit -F arch=b32 -S clock_adjtime -F key=rhcs_audit_time_change
    -a always,exit -F arch=b64 -S clock_adjtime -F key=rhcs_audit_time_change
    -w /etc/localtime -p wa -k rhcs_audit_time_change
    Copy to Clipboard Toggle word wrap
  2. 然后重启 auditd

    # service auditd restart
    Copy to Clipboard Toggle word wrap

审计对证书系统配置的访问

要接收对证书系统实例配置文件的所有修改的审计事件,请审核这些文件的文件系统访问。

  1. 使用以下内容创建 /etc/audit/rules.d/rhcs-audit-config-access.rules 文件:

    -w /etc/pki/instance_name/server.xml -p wax -k rhcs_audit_config
    Copy to Clipboard Toggle word wrap
  2. 另外,在 /etc/pki/instance_name/ 目录中为每个子系统添加以下内容:

    -w /etc/pki/instance name/subsystem/CS.cfg -p wax -k rhcs_audit_config
    Copy to Clipboard Toggle word wrap

    例如,如果在 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
    Copy to Clipboard Toggle word wrap

    请注意,在 rhcs_audit_nssdb 下已对对 RHCS NSS 数据库的访问进行了审核。

注意

每当向同一系统添加新实例时,请扩展 /etc/audit/rules.d/rhcs-audit-nssdb-access.rules,以同样的方式包含新实例文件。

验证审计规则

  1. 添加每个审计规则并重启 auditd 服务后,您可以验证是否添加了新规则:

    # auditctl -l
    Copy to Clipboard Toggle word wrap

    新规则的内容应该在输出中可见。

验证审计

您可以验证 rhcs_audit_nssdb 的规则是否与一个简单的测试一起工作,例如:

  1. 访问 SubCA 别名目录:

    # cd /etc/pki/rhcs10-RSA-SubCA/alias/
    Copy to Clipboard Toggle word wrap
  2. 检查审计事件:

    # ausearch -k rhcs_audit_nssdb
    Copy to Clipboard Toggle word wrap

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
Copy to Clipboard Toggle word wrap

除了在 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”
Copy to Clipboard Toggle word wrap

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 实例,以验证其对等证书的撤销状态:

前提条件

  • 以 root 用户身份登录 rhcs10.example.com

流程

此流程使用 KRA 作为示例。类似的步骤也适用于 CA、OCSP、TKS 和 TPS 实例,为适当的实例调整命令。

  1. 停止 KRA:

    # pki-server stop rhcs10-RSA-KRA
    Copy to Clipboard Toggle word wrap

    或者,如果使用 Nuxwdog watchdog:

    # systemctl stop pki-tomcatd-nuxwdog@rhcs10-KRA.service
    Copy to Clipboard Toggle word wrap
  2. 编辑 /var/lib/pki/rhcs10-RSA-KRA/conf/server.xml 文件来配置 Connector name="Secure" 部分:

    1. enableRevocationCheck 参数设置为 true。请注意,enableRevocationCheck 也被称为 enableOCSP。仅设置一个,而不能同时设置。
    2. 确保 删除 这两个参数及其分配值:

      • ocspResponderURL
      • ocspResponderCertNickname

      例如:

    <Connector name="Secure"
         enableRevocationCheck="true"
         ocspCacheSize="1000"
         ocspMinCacheEntryDuration="60"
         ocspMaxCacheEntryDuration="120"
         ocspTimeout="10"
         ...
    />
    Copy to Clipboard Toggle word wrap
  3. 启动 KRA:

    # pki-server start rhcs10-RSA-KRA
    Copy to Clipboard Toggle word wrap

    或者,如果使用 Nuxwdog watchdog:

    # systemctl start pki-tomcatd-nuxwdog@rhcs10-KRA.service
    Copy to Clipboard Toggle word wrap
注意

默认情况下,在安装过程中创建的所有 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 启动之前启动并运行。

可以在启动时将 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 无法访问时,它的方式略有不同
  • 如果证书中只存在 OCSP-aia :

    • 它会根据 OCSP 响应从 OCSP 指向 OCSP 验证,由 OCSP-aia 验证

      • 如果在 OCSP Responder: fail/revoked 的 CRL 中找到证书
      • 如果在 OCSP Responder 的 CRL 中没有找到证书: good
    • 如果 OCSP-aia 中的 URL 无法访问,则被视为 bad

      • bad Certificate
        请注意,当 CRL 分发点无法访问时,它的方式略有不同
  • 如果证书中存在 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

  1. 编辑 server.xml 文件,导航到主 SSL 端口的 Connector 声明,并找到 SSLHostConfig 元素。
  2. 使用以下配置修改 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">
    Copy to Clipboard Toggle word wrap

    以上加密列表表示此 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> / &lt;instance type&gt; /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
    Copy to Clipboard Toggle word wrap
    注意

    为确保内部 LDAP 数据库启用了所需的密码,请按照 为 DS 实例配置密码

  • 当 CA 实例充当 KRA 的客户端时。
    在 < instance directory&gt; /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
    Copy to Clipboard Toggle word wrap
  • 当 TPS 实例充当 CA、KRA 或 TKS 的客户端时。
    在 < instance directory&gt; /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
    Copy to Clipboard Toggle word wrap
注意

您必须重启每个服务器实例才能使修改生效,例如:

# pki-server restart rhcs10-RSA-RootCA
Copy to Clipboard Toggle word wrap
# pki-server restart rhcs10-RSA-SubCA
Copy to Clipboard Toggle word wrap
# pki-server restart rhcs10-RSA-OCSP-rootca
Copy to Clipboard Toggle word wrap
# pki-server restart rhcs10-RSA-OCSP-subca
Copy to Clipboard Toggle word wrap
# pki-server restart rhcs10-RSA-KRA
Copy to Clipboard Toggle word wrap

或者,如果使用 Nuxwdog watchdog:

# systemctl restart rhcs10-RSA-RootCA
Copy to Clipboard Toggle word wrap
# systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-SubCA.service
Copy to Clipboard Toggle word wrap
# systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-rootca.service
Copy to Clipboard Toggle word wrap
# systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-subca.service
Copy to Clipboard Toggle word wrap
# systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-KRA.service
Copy to Clipboard Toggle word wrap

…​

7.13.11.3. 为 DS 实例配置密码

默认情况下,Directory 服务器实例会继承操作系统上启用的密码。如果要设置它以便密码列表与证书系统的名称匹配,请对每个 DS 实例执行以下步骤:

  • 在 DS 主机 rhds11.example.com 上:

    1. 启用预期的密码(使用 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"
      Copy to Clipboard Toggle word wrap
    2. 重启 DS 实例:

      # dsctl slapd-CC-RSA-SubCA-LDAP stop
      Copy to Clipboard Toggle word wrap
      # dsctl slapd-CC-RSA-SubCA-LDAP start
      Copy to Clipboard Toggle word wrap
    3. 通过列出启用的密码来验证:

      # dsconf -D "cn=Directory Manager" ldap://rhds11.example.com:7389 security ciphers list --enabled
      
      Enter password for cn=Directory Manager on ldap://rhds11.example.com:7389:
      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 Toggle word wrap

7.13.12. 为连接到 CS 时需要 TLS 相互身份验证

默认情况下,红帽认证系统已经要求角色用户操作通过 TLS mutual 身份验证插件进行 TLS mutual 身份验证,同时,同时允许一些非角色操作仅通过 TLS 服务器身份验证来处理一些非角色操作。TLS mutual 身份验证为服务器连接器提供更强大的身份验证。以下流程允许站点使证书系统实例无法被无法为 TLS 握手提供证书的客户端访问。

重要

在安装所有所需证书系统实例之前,不要执行本节中的步骤。执行此步骤后,您将需要恢复更改,以防稍后想要安装更多证书系统实例。

流程

通过修改 server.xml 配置文件来启用 TLS mutual 身份验证。

重要

在编辑前备份原始 server.xml 文件,例如 server.xml.orig

  1. 编辑 server.xml 文件并搜索 certificateVerification= 参数。
  2. 将参数值从 optional 改为 required

    certificateVerification=required
    Copy to Clipboard Toggle word wrap
  3. 保存并重启每个服务器实例以使修改生效。

增强 CS 实例后,务必要注意,在 TLS 握手时,通常不需要 TLS mutual 身份验证的操作需要提供有效的客户端证书。受此问题影响的示例操作是使用 CMCSharedToken 注册,一些 pki 命令通常不需要 TLS mutual 身份验证。

  • 要让 CMCSharedToken 正常工作,您需要向用户预签发证书,然后在 HttpClient 调用时编辑 HttpClient 配置文件,使其包含以下内容:

    clientmode=true
    nickname=<client cert that was issued and imported>
    Copy to Clipboard Toggle word wrap
  • 为了正常工作,pki 命令现在需要提供有效的客户端证书:

    • 例如,最初,ca-cert-find 命令不需要相互身份验证:

      # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db/ -c SECret.123 -p 31443 ca-cert-find
      Copy to Clipboard Toggle word wrap
    • 现在,对于新限制,您需要执行以下操作:

      # pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db/ -c SECret.123 -p 31443 -n 'SubCA_AdminV' ca-cert-find
      Copy to Clipboard Toggle word wrap

      以下列表显示了属于此类别的 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),请首先将其替换为以下 :

这些步骤将在安装完成后执行。

在 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
    Copy to Clipboard Toggle word wrap

    例如:

    certmap rhcs CN=CA Signing Certificate,OU=pki-tomcat-ca,O=pki-tomcat-ca-SD
    		rhcs:CmapLdapAttr seeAlso
    		rhcs:verifyCert on
    Copy to Clipboard Toggle word wrap
  • 配置后,重启 Directory 服务器。例如:

    # dsctl slapd-CC-RSA-SubCA-LDAP restart
    Copy to Clipboard Toggle word wrap

在 CS 上配置

作为第二部分,我们需要配置 Red Hat Certificate System 实例,以便它知道使用正确的身份验证类型(即 SslClientAuth 而不是 BasicAuth),以及哪个端口和证书将用于使用 TLS mutual 身份验证与其内部 LDAP 服务器通信。这包括编辑位于 < instance directory> / <subsystem type&gt; /conf/ CS.cfg 的 RHCS 实例的 CS.cfg 文件。例如 /var/lib/pki/instance_name/ca/conf/CS.cfg

  1. 停止您要配置的 CS 实例:

    # pki-server stop rhcs10-<INSTANCE>
    Copy to Clipboard Toggle word wrap

    或者,如果使用 Nuxwdog watchdog:

    # systemctl stop pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.service
    Copy to Clipboard Toggle word wrap
  2. CS.cfg 中,请将 RHCS 实例的子系统证书别名添加到 internaldb.ldapauth.clientCertNickname 中,并删除两个未使用的条目:

    internaldb.ldapauth.bindDN
    		internaldb.ldapauth.bindPWPrompt
    Copy to Clipboard Toggle word wrap

    如下所示:

internaldb._000=##
		internaldb._001=## Internal Database
		internaldb._002=##
		internaldb.basedn=o=pki-tomcat-ca-SD
		internaldb.database=pki-tomcat-ca
		internaldb.maxConns=15
		internaldb.minConns=3
		internaldb.ldapauth.authtype=SslClientAuth
		internaldb.ldapauth.clientCertNickname=HSM-A:subsystemCert pki-tomcat-ca
		internaldb.ldapconn.host=example.com
		internaldb.ldapconn.port=11636
		internaldb.ldapconn.secureConn=true
Copy to Clipboard Toggle word wrap
  1. 重启 CS 实例:

    # pki-server start rhcs10-<INSTANCE>
    Copy to Clipboard Toggle word wrap

    或者,如果使用 Nuxwdog watchdog:

    # systemctl start pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.service
    Copy to Clipboard Toggle word wrap
注意

您必须配置 internaldb.basedninternaldb.database 参数,以匹配特定的 LDAP 实例。

为了合规,内部db.ldapauth.authtype=SslClientAuthinternaldb.ldapconn.secureConn=true 必须被设置,并且 internaldb.ldapauth.clientCertNickname 的值必须与 TLS 客户端证书的 nickname 匹配,才能针对带有在 nssdb 中的 LDAP 进行身份验证。

可以根据需要更改所有其他值,以反映您的环境或可用性需求。

7.13.14. 更新 supported_groups TLS 扩展

认证颁发机构版本 2.1 的保护配置文件 不允许为 TLS 密钥交换的较新的(及更安全)命名组。为了满足此要求,以下流程描述了如何禁用这些组:

  1. 首先,使用必要的修改根据现有策略(/usr/share/crypto-policies/FIPS.pol)构建一组策略。这将相应地更新另一个配置文件(/etc/crypto-policies/back-ends/nss.config)。
  2. 然后,有关如何进一步定制生成的更改的配置文件(/etc/crypto-policies/back-ends/nss.config)以获得所需结果的说明。
重要

在安装所有所需的 CS 实例之前,不要执行本节中的步骤。执行此步骤后,如果稍后要安装更多的 CS 实例,则需要在继续前恢复更改:

# update-crypto-policies --set FIPS
Copy to Clipboard Toggle word wrap

流程

  1. 关闭所有证书系统服务器。例如:

    # pki-server stop rhcs10-<INSTANCE>
    Copy to Clipboard Toggle word wrap

    或者,如果使用 Nuxwdog watchdog:

    # systemctl stop pki-tomcatd-nuxwdog@rhcs10-<INSTANCE>.service
    Copy to Clipboard Toggle word wrap
  2. 查找系统作为以下策略的文件系统:

    # update-crypto-policies --show
    Copy to Clipboard Toggle word wrap

    如果遵循安装过程,您应该看到"FIPS"作为命令输出。

  3. 将当前的策略复制到我们的新的自定义策略文件中,以进行修改:

    # cp /usr/share/crypto-policies/policies/FIPS.pol /etc/crypto-policies/policies/CC-FIPS.pol
    Copy to Clipboard Toggle word wrap
  4. 编辑自定义策略文件,例如:

    # vi /etc/crypto-policies/policies/CC-FIPS.pol
    Copy to Clipboard Toggle word wrap

    进行以下修改,然后保存文件:

    1. 更改 groups 参数的分配:

      group = SECP256R1 SECP384R1 SECP521R1 \ FFDHE-2048 FFDHE-3072 FFDHE-4096 FFDHE-6144 FFDHE-8192
      Copy to Clipboard Toggle word wrap

      group = SECP256R1 SECP384R1 SECP521R1
      Copy to Clipboard Toggle word wrap
    2. 更改 key_exchange 参数的分配:

      key_exchange = ECDHE DHE DHE-RSA PSK DHE-PSK ECDHE-PSK
      Copy to Clipboard Toggle word wrap

      key_exchange = ECDHE DHE PSK DHE-PSK ECDHE-PSK
      Copy to Clipboard Toggle word wrap
    3. 更改 min_dh_size 参数的分配

      min_dh_size = 2048
      Copy to Clipboard Toggle word wrap

      min_dh_size = 176384
      Copy to Clipboard Toggle word wrap
  5. 注册自定义站点策略:

    # update-crypto-policies --set CC-FIPS
    Copy to Clipboard Toggle word wrap

    nss.config 文件反映 update_crypto-policies -set 对自定义策略文件的调用后的更改。
    此流程的第二部分包括进一步对 nss.config 文件的更改。

  6. 编辑 nss.config 文件,例如:

    # vi /etc/crypto-policies/back-ends/nss.config
    Copy to Clipboard Toggle word wrap

    allow= 字符串的分配 config 参数下,直接在 dtls-version-min=dtls1.2 设置后插入以下字符串:

    tls-version-max=tls1.2:dtls-version-max=dtls1.2
    Copy to Clipboard Toggle word wrap

    生成的 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"
    Copy to Clipboard Toggle word wrap
  7. 启动或重启任何基于 nss 的应用程序/服务器/客户端以查看应用更改。例如:

    # pki-server start rhcs10-RSA-RootCA
    Copy to Clipboard Toggle word wrap
    # pki-server restart rhcs10-RSA-SubCA
    Copy to Clipboard Toggle word wrap

    …​

    或者,如果使用 Nuxwdog Watchdog :

    # systemctl start pki-tomcatd-nuxwdog@rhcs10-RSA-RootCA.service
    Copy to Clipboard Toggle word wrap
    # systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-SubCA.service
    Copy to Clipboard Toggle word wrap
    # systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-rootca.service
    Copy to Clipboard Toggle word wrap
    # systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-OCSP-subca.service
    Copy to Clipboard Toggle word wrap
    # systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-KRA.service
    Copy to Clipboard Toggle word wrap

    …​

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
    Copy to Clipboard Toggle word wrap

验证:

  1. 验证横幅不包含无效的字符:

    # pki-server banner-validate -i instance_name
    ---------------
    Banner is valid
    ---------------
    Copy to Clipboard Toggle word wrap
  2. 显示当前配置的横幅:

    # pki-server banner-show -i instance_name
    Copy to Clipboard Toggle word wrap

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
Copy to Clipboard Toggle word wrap

安装并运行服务器后,您可以通过从浏览器访问以下 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
注意

请注意,每个组件都是一个单独的软件包,因此可以有单独的版本号。以上将显示每个当前运行的组件的版本号。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部