7.5. 安装后的任务


使用 pkispawn 工具安装后,可以采取进一步的步骤来自定义配置,具体取决于站点的首选项。它们在 第 III 部分 “配置证书系统” 中进行了描述。

本节提供了 第 III 部分 “配置证书系统” 的操作列表,用于提高部署的安全性。

7.5.1. 为 Red Hat Certificate System 设置日期/时间

务必要为运行 RHCS 正确设置时间 ; 请参阅 Red Hat Certificate System Administration Guide 中的 Setting time and date 部分。

7.5.2. 获取由实际 CA 发布的 DS 证书

使用 pki CLI (run man pki-client)命令通过 pki CLI (run man pki-client)命令获取由实际 CA 发布的 DS 证书。

本节假定名为 localhost 的 DS 实例已存在,

本节涵盖两个条件:

  • DS 实例还没有任何 SSL 服务器证书、bootstrap 或者其他证书,并且是时间为其创建实际服务器证书。
  • DS 实例具有 bootstrap SSL 服务器证书,您想要替换它。

假设有一个实际的可信 CA 可用于发布证书。

7.5.2.1. 导出 CA 签名证书

pki-server cert-export ca_signing --cert-file ca_signing.crt
Copy to Clipboard Toggle word wrap

7.5.2.2. 创建 DS 服务器证书

7.5.2.2.1. 生成 DS 服务器 CSR

作为 DS 管理员:

$ pki \
    -d /etc/dirsrv/slapd-localhost \
    -C /etc/dirsrv/slapd-localhost/pwdfile.txt \
    nss-cert-request \
    --subject "CN=server.example.com" \
    --subjectAltName "critical, DNS:server.example.com" \
    --csr ds_server.csr
Copy to Clipboard Toggle word wrap

注意: 确保证书主题 DN 和 SAN 与系统主机名匹配。

7.5.2.2.2. 提交 DS 服务器证书请求:

作为 DS 管理员:

$ pki ca-cert-request-submit --profile caServerCert --csr-file ds_server.csr
Copy to Clipboard Toggle word wrap
7.5.2.2.3. 批准证书请求:

作为 PKI 代理:

$ pki -n caadmin ca-cert-request-approve <request ID>
Copy to Clipboard Toggle word wrap

7.5.2.3. 检索证书

以 DS admin 用户身份检索证书:

$  pki ca-cert-export <certificate ID> --output-file ds_server.crt
Copy to Clipboard Toggle word wrap

7.5.2.4. 停止 DS 实例

在更改 NSS 数据库前停止 DS 实例。

$ dsctl localhost stop
Copy to Clipboard Toggle word wrap

7.5.2.5. 导入 CA 签名证书

作为 DS 管理员,将 CA 签名证书导入到 DS 实例的 nssdb 中。

# pki \
    -d /etc/dirsrv/slapd-localhost \
    -C /etc/dirsrv/slapd-localhost/pwdfile.txt \
    nss-cert-import \
    --cert ca_signing.crt \
    --trust CT,C,C \
    "CA Signing Cert"
Copy to Clipboard Toggle word wrap

7.5.2.6. 删除 DS bootstrap 证书

如果您已经有 boostrap DS 证书,请删除它们:

$ certutil -F -d /etc/dirsrv/slapd-localhost \
    -f /etc/dirsrv/slapd-localhost/pwdfile.txt \
    -n Server-Cert
$ certutil -D -d /etc/dirsrv/slapd-localhost \
    -f /etc/dirsrv/slapd-localhost/pwdfile.txt \
    -n Self-Signed-CA
Copy to Clipboard Toggle word wrap

7.5.2.7. 导入 DS 服务器证书:

$ pki \
    -d /etc/dirsrv/slapd-localhost \
    -C /etc/dirsrv/slapd-localhost/pwdfile.txt \
    nss-cert-import \
    --cert ds_server.crt \
    Server-Cert
Copy to Clipboard Toggle word wrap

验证 DS 服务器证书:

$ certutil -L -d /etc/dirsrv/slapd-localhost -n Server-Cert
...
    Certificate Trust Flags:
        SSL Flags:
            User
        Email Flags:
            User
        Object Signing Flags:
            User
Copy to Clipboard Toggle word wrap

7.5.2.8. 启用 SSL 连接

本节只有在之前没有启用 DS 中的 SSL 时才适用。

  1. 在 DS 实例中启用 SSL 连接:

    $ dsconf localhost config replace nsslapd-security=on
    Copy to Clipboard Toggle word wrap
  2. 启动 DS 实例:

    $ dsctl localhost start
    Copy to Clipboard Toggle word wrap
  3. 验证 SSL 连接:

    $ LDAPTLS_REQCERT=never ldapsearch \
        -H ldaps://$HOSTNAME:636 \
        -x \
        -D "cn=Directory Manager" \
        -w Secret.123 \
        -b "" \
        -s base
    Copy to Clipboard Toggle word wrap

7.5.2.9. 从 PKI 实例中删除 DS bootstrap 签名证书

如果您要替换 DS bootstrap 证书,作为 PKI 管理员,请停止 PKI,然后从 PKI nssdb 中删除 DS bootstrap 签名证书,如下所示:

$ certutil -F -d /var/lib/pki/pki-tomcat/conf/alias \
    -f /var/lib/pki/pki-tomcat/conf/alias/pwdfile.txt \
    -n ds_signing
Copy to Clipboard Toggle word wrap

启动 PKI。

7.5.2.10. 另请参阅

7.5.3. 使用 bootstrap 证书在 DS 中启用 SSL 连接

如果您已有一个活跃的可信 CA,并且您希望为 DS 发出服务器证书,请改为使用 本节

按照以下步骤,使用 pki CLI (run man pki-client)命令通过创建 bootstrap DS 自签名签名证书以及它发布的 bootstrap 服务器证书在 DS 中启用 SSL 连接。

本节假定名为 localhost 的 DS 实例已存在,它没有证书,并且禁用 SSL 连接。

注: 在较新的 DS 版本中,证书会被创建,且默认启用 SSL 连接,因此通常不需要遵循这个步骤。

7.5.3.1. 创建 DS 签名证书

  1. 使用以下命令生成 DS 签名 CSR:

    $ pki \
        -d /etc/dirsrv/slapd-localhost \
        -C /etc/dirsrv/slapd-localhost/pwdfile.txt \
        nss-cert-request \
        --subject "CN=DS Signing Certificate" \
        --ext /usr/share/pki/server/certs/ca_signing.conf \
        --csr ds_signing.csr
    Copy to Clipboard Toggle word wrap
  2. 发出 DS 签名证书:

    $ pki \
        -d /etc/dirsrv/slapd-localhost \
        -C /etc/dirsrv/slapd-localhost/pwdfile.txt \
        nss-cert-issue \
        --csr ds_signing.csr \
        --ext /usr/share/pki/server/certs/ca_signing.conf \
        --cert ds_signing.crt
    Copy to Clipboard Toggle word wrap
  3. 导入 DS 签名证书:

    $ pki \
        -d /etc/dirsrv/slapd-localhost \
        -C /etc/dirsrv/slapd-localhost/pwdfile.txt \
        nss-cert-import \
        --cert ds_signing.crt \
        --trust CT,C,C \
        Self-Signed-CA
    Copy to Clipboard Toggle word wrap
  4. 验证 DS 签名证书:

    $ certutil -L -d /etc/dirsrv/slapd-localhost -n Self-Signed-CA
    ...
        Certificate Trust Flags:
            SSL Flags:
                Valid CA
                Trusted CA
                User
                Trusted Client CA
            Email Flags:
                Valid CA
                Trusted CA
                User
            Object Signing Flags:
                Valid CA
                Trusted CA
                User
    Copy to Clipboard Toggle word wrap

7.5.3.2. 创建 DS 服务器证书

  1. 使用以下命令生成 DS 服务器 CSR:

    $ pki \
        -d /etc/dirsrv/slapd-localhost \
        -C /etc/dirsrv/slapd-localhost/pwdfile.txt \
        nss-cert-request \
        --subject "CN=$HOSTNAME" \
        --subjectAltName "critical, DNS:$HOSTNAME" \
        --ext /usr/share/pki/server/certs/sslserver.conf \
        --csr ds_server.csr
    Copy to Clipboard Toggle word wrap
  2. 发出 DS 服务器证书:

    $ pki \
        -d /etc/dirsrv/slapd-localhost \
        -C /etc/dirsrv/slapd-localhost/pwdfile.txt \
        nss-cert-issue \
        --issuer Self-Signed-CA \
        --csr ds_server.csr \
        --ext /usr/share/pki/server/certs/sslserver.conf \
        --cert ds_server.crt
    Copy to Clipboard Toggle word wrap
  3. 导入 DS 服务器证书:

    $ pki \
        -d /etc/dirsrv/slapd-localhost \
        -C /etc/dirsrv/slapd-localhost/pwdfile.txt \
        nss-cert-import \
        --cert ds_server.crt \
        Server-Cert
    Copy to Clipboard Toggle word wrap
  4. 验证 DS 服务器证书:

    $ certutil -L -d /etc/dirsrv/slapd-localhost -n Server-Cert
    ...
        Certificate Trust Flags:
            SSL Flags:
                User
            Email Flags:
                User
            Object Signing Flags:
                User
    Copy to Clipboard Toggle word wrap

7.5.3.3. 启用 SSL 连接

  1. 在 DS 实例中启用 SSL 连接:

    $ dsconf localhost config replace nsslapd-security=on
    Copy to Clipboard Toggle word wrap
  2. 重启 DS 实例:

    $ dsctl localhost restart
    Copy to Clipboard Toggle word wrap
  3. 验证 SSL 连接:

    $ LDAPTLS_REQCERT=never ldapsearch \
        -H ldaps://$HOSTNAME:636 \
        -x \
        -D "cn=Directory Manager" \
        -w Secret.123 \
        -b "" \
        -s base
    Copy to Clipboard Toggle word wrap

7.5.3.4. 另请参阅

7.5.4. 启用从 CS 到 DS 的 TLS 相互身份验证

注意

本节需要安装并运行 root CA。如果您使用 bootstrap 自签名 LDAP 服务器证书,请按照 第 7.5.2 节 “获取由实际 CA 发布的 DS 证书” 替换它。安装完成后,这些步骤将执行。

如果您选择启用 TLS 客户端身份验证,则当基本 TLS 服务器身份验证在安装 CS 子系统时,我们现在可以重复运行,并尝试从给定子系统启用客户端身份验证到 LDAP 服务器。

设置客户端身份验证有两个部分。第一部分将 LDAP 目录配置为需要 TLS 相互身份验证。在 Red Hat Directory Server Administration Guide 中使用基于证书的客户端身份验证 中详述了这个流程。

注意以下几点:

  • 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 服务器。

第二部分是将配置添加到 Red Hat Certificate System 实例,以便它知道要使用 TLS mutual 身份验证与其内部 LDAP 服务器通信的端口和证书。这包括编辑位于 < instance 目录& gt;/&lt;subsystem 类型>/conf/CS.cfg 的 RHCS 实例的 CS.cfg 文件。例如 /var/lib/pki/ instance_name/ca/conf/CS.cfg

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

在安装后步骤的末尾重启 CS 实例。

注意

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

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

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

7.5.5. 配置会话超时

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

7.5.6. CRL 或证书发布

CRL 发布对于提供 OCSP 服务至关重要。证书发布是可选的,但通常被站点需要。详情请参阅 Red Hat Certificate System Administration Guide 中的发布证书 和 CRL 部分。

7.5.7. 配置证书注册配置文件(CA)

RHCS 具有丰富的配置文件框架,允许自定义证书注册配置文件。站点非常常见,以启用/禁用系统附带的默认配置集,或者修改现有配置集或创建自己的配置集。详情请查看 第 15 章 配置证书配置文件

7.5.8. 使用 CRL 分发点的注册配置集配置

启用所需的配置集,使其包含 CRL 分发点。这些配置集与上述部分中配置对应的配置集。

  1. /var/lib/pki/<ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/ 目录中打开 ca CMCserverCertWithCRLDP.cfg 配置集(用于注册 RSA 密钥),如下所示:

    vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCserverCertWithCRLDP.cfg
    …
    enable=true
    …
    policyset.serverCertSet.10.default.params.crlDistPointsPointName_0=http://rhcs10.example.com:8085/crl/ServerCertCRL.crl
    …
    Copy to Clipboard Toggle word wrap
  2. 打开 /var/lib/pki/<ca 实例目录/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/ 目录中的 ca CMCECserverCertWithCRLDP.cfg (用于注册 ECC 密钥),如下所示:

    vi /var/lib/pki/rhcs10-ECC-RootCA/ca/profiles/ca/caCMCECserverCertWithCRLDP.cfg
    …
    enable=true
    …
    policyset.serverCertSet.10.default.params.crlDistPointsPointName_0=http://rhcs10.example.com:20085/crl/ServerCertCRL.crl
    …
    Copy to Clipboard Toggle word wrap
  3. 设置 user:group 所有权:

    chown -R pkiuser:pkiuser  /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCserverCertWithCRLDP.cfg
    chown -R pkiuser:pkiuser  /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCECserverCertWithCRLDP.cfg
    Copy to Clipboard Toggle word wrap
  4. 在 CA 的 CS.cfg 中注册一个新的配置集:

    1. 为每个配置集添加以下行:

      profile.caCMCserverCertWithCRLDP.class_id=caEnrollImpl
      profile.caCMCserverCertWithCRLDP.config=/var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCserverCertWithCRLDP.cfg
      
      profile.caCMCECserverCertWithCRLDP.class_id=caEnrollImpl
      profile.caCMCECserverCertWithCRLDP.config=/var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCECserverCertWithCRLDP.cfg
      Copy to Clipboard Toggle word wrap
    2. 编辑 profile.list 条目,以添加两个新配置文件。例如:

      profile.list=caCMCserverCertWithCRLDP,caCMCECserverCertWithCRLDP,acmeServerCert,caCMCserverCert,caCMCECserverCert, …
      Copy to Clipboard Toggle word wrap

7.5.9. 配置对 CRL 分发点的支持

注意

有关 CRL 分发点的更多信息,为什么需要它们,以及它们最适合的位置,请参阅 对 CA 启用自动撤销检查

要配置对 CRL 分发点的支持,我们描述了如何设置基于文件的 CRL 发布程序以及 CRL 的分区。您还将了解如何启用证书注册配置文件,以使用 CRL 分发点扩展发布证书。最后,我们描述了如何将 CA 的 LDAP 服务器的临时服务器认证替换为从 CRL 分发点配置文件发布的证书。

在继续以下更改前,停止 RootCA 实例:

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

7.5.9.1. CA 设置以支持 Server Cert CRL File Publishing

注意

在继续操作前,在编辑前保存配置文件副本:

cp /var/lib/pki/rhcs10-RSA-RootCA/ca/conf/CS.cfg  /var/lib/pki/rhcs10-RSA-RootCA/ca/conf/CS.cfg.bak.<date>
Copy to Clipboard Toggle word wrap

本节中的配置创建基于文件的 CRL 发布程序,名为 crlFilePublisher。正确设置后,CRL 以 DER 格式保存在 /var/lib/pki/rhcs10-RSA-RootCA/crl 目录中。

  1. 创建 CRL 目录以发布基于文件的分区 CRL:

    mkdir /var/lib/pki/rhcs10-RSA-RootCA/crl
    chown pkiuser.pkiuser /var/lib/pki/rhcs10-RSA-RootCA/crl
    Copy to Clipboard Toggle word wrap
  2. 在 CA 的 CS.cfg 中添加以下内容:

    ca.publish.publisher.instance.crlFilePublisher.Filename.b64=false
    ca.publish.publisher.instance.crlFilePublisher.Filename.der=true
    ca.publish.publisher.instance.crlFilePublisher.crlLinkExt=crl
    ca.publish.publisher.instance.crlFilePublisher.directory=/var/lib/pki/rhcs10-RSA-RootCA/crl
    ca.publish.publisher.instance.crlFilePublisher.latestCrlLink=true
    ca.publish.publisher.instance.crlFilePublisher.maxAge=0
    ca.publish.publisher.instance.crlFilePublisher.maxFullCRLs=0
    ca.publish.publisher.instance.crlFilePublisher.pluginName=FileBasedPublisher
    ca.publish.publisher.instance.crlFilePublisher.timeStamp=LocalTime
    ca.publish.publisher.instance.crlFilePublisher.zipCRLs=false
    ca.publish.publisher.instance.crlFilePublisher.zipLevel=9
    Copy to Clipboard Toggle word wrap
7.5.9.1.2. 设置基于文件的发布规则:FileCrlRule

本节中的配置创建名为 FileCrlRule 的基于文件的发布规则。predicate 指定到名为 ServerCertCRL的分区 CRL 的发布点(在为 通过配置集发布的证书设置 CRL-partitioning 中定义)。

  • 在 CA 的 CS.cfg 中添加以下内容:
ca.publish.rule.instance.FileCrlRule.enable=true
ca.publish.rule.instance.FileCrlRule.mapper=NoMap
ca.publish.rule.instance.FileCrlRule.pluginName=Rule
ca.publish.rule.instance.FileCrlRule.predicate=issuingPointId==ServerCertCRL
ca.publish.rule.instance.FileCrlRule.publisher=crlFilePublisher
ca.publish.rule.instance.FileCrlRule.type=crl
Copy to Clipboard Toggle word wrap
7.5.9.1.3. 修改基于 LDAP 的发布规则:LdapCrlRule

此配置明确将 LdapCrlRule predicate 设置为 master (full) CRL。master CRL 持续提供给 OCSP 响应程序,以进行正确的 OCSP 支持。

修改 CA 的 CS.cfg 中的以下内容:

ca.publish.rule.instance.LdapCrlRule.predicate=issuingPointId==MasterCRL
Copy to Clipboard Toggle word wrap

本节中的配置演示了如何将 CRL 分区到上面定义的 FileCrlRule 中使用的一个较小的子集。CRL 由在 profileList 参数中指定的证书注册配置文件进行分区。以逗号分隔的列表可用于多个配置集(例如,caCMCserverCertWithCRLDP.cfgcaCMCECserverCertWithCRLDP.cfg)。

在 CA 的 CS.cfg 中添加以下内容:

ca.crl.ServerCertCRL.allowExtensions=true
ca.crl.ServerCertCRL.alwaysUpdate=false
ca.crl.ServerCertCRL.autoUpdateInterval=240
ca.crl.ServerCertCRL.caCertsOnly=false
ca.crl.ServerCertCRL.cacheUpdateInterval=15
ca.crl.ServerCertCRL.class=com.netscape.ca.CRLIssuingPoint
ca.crl.ServerCertCRL.dailyUpdates=1:00
ca.crl.ServerCertCRL.description=CA's Certificate Revocation List containing certificates issued via the caCMCserverCertWithCRLDP and caCMCECserverCertWithCRLDP enrollment profile
ca.crl.ServerCertCRL.enable=true
ca.crl.ServerCertCRL.enableCRLCache=false
ca.crl.ServerCertCRL.enableCRLUpdates=true
ca.crl.ServerCertCRL.enableCacheRecovery=true
ca.crl.ServerCertCRL.enableCacheTesting=false
ca.crl.ServerCertCRL.enableDailyUpdates=true
ca.crl.ServerCertCRL.enableUpdateInterval=true
ca.crl.ServerCertCRL.extendedNextUpdate=true
ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.accessLocation0=""
ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.accessLocationType0=URI
ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.accessMethod0=caIssuers
ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.class=com.netscape.cms.crl.CMSAuthInfoAccessExtension
ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.critical=false
ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.enable=false
ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.numberOfAccessDescriptions=1
ca.crl.ServerCertCRL.extension.AuthorityInformationAccess.type=CRLExtension
ca.crl.ServerCertCRL.extension.AuthorityKeyIdentifier.class=com.netscape.cms.crl.CMSAuthorityKeyIdentifierExtension
ca.crl.ServerCertCRL.extension.AuthorityKeyIdentifier.critical=false
ca.crl.ServerCertCRL.extension.AuthorityKeyIdentifier.enable=false
ca.crl.ServerCertCRL.extension.AuthorityKeyIdentifier.type=CRLExtension
ca.crl.ServerCertCRL.extension.CRLNumber.class=com.netscape.cms.crl.CMSCRLNumberExtension
ca.crl.ServerCertCRL.extension.CRLNumber.critical=false
ca.crl.ServerCertCRL.extension.CRLNumber.enable=true
ca.crl.ServerCertCRL.extension.CRLNumber.type=CRLExtension
ca.crl.ServerCertCRL.extension.CRLReason.class=com.netscape.cms.crl.CMSCRLReasonExtension
ca.crl.ServerCertCRL.extension.CRLReason.critical=false
ca.crl.ServerCertCRL.extension.CRLReason.enable=true
ca.crl.ServerCertCRL.extension.CRLReason.type=CRLEntryExtension
ca.crl.ServerCertCRL.extension.DeltaCRLIndicator.class=com.netscape.cms.crl.CMSDeltaCRLIndicatorExtension
ca.crl.ServerCertCRL.extension.DeltaCRLIndicator.critical=true
ca.crl.ServerCertCRL.extension.DeltaCRLIndicator.enable=false
ca.crl.ServerCertCRL.extension.DeltaCRLIndicator.type=CRLExtension
ca.crl.ServerCertCRL.extension.FreshestCRL.class=com.netscape.cms.crl.CMSFreshestCRLExtension
ca.crl.ServerCertCRL.extension.FreshestCRL.critical=false
ca.crl.ServerCertCRL.extension.FreshestCRL.enable=false
ca.crl.ServerCertCRL.extension.FreshestCRL.numPoints=0
ca.crl.ServerCertCRL.extension.FreshestCRL.pointName0=""
ca.crl.ServerCertCRL.extension.FreshestCRL.pointType0=""
ca.crl.ServerCertCRL.extension.FreshestCRL.type=CRLExtension
ca.crl.ServerCertCRL.extension.InvalidityDate.class=com.netscape.cms.crl.CMSInvalidityDateExtension
ca.crl.ServerCertCRL.extension.InvalidityDate.critical=false
ca.crl.ServerCertCRL.extension.InvalidityDate.enable=true
ca.crl.ServerCertCRL.extension.InvalidityDate.type=CRLEntryExtension
ca.crl.ServerCertCRL.extension.IssuerAlternativeName.class=com.netscape.cms.crl.CMSIssuerAlternativeNameExtension
ca.crl.ServerCertCRL.extension.IssuerAlternativeName.critical=false
ca.crl.ServerCertCRL.extension.IssuerAlternativeName.enable=false
ca.crl.ServerCertCRL.extension.IssuerAlternativeName.name0=""
ca.crl.ServerCertCRL.extension.IssuerAlternativeName.nameType0=""
ca.crl.ServerCertCRL.extension.IssuerAlternativeName.numNames=0
ca.crl.ServerCertCRL.extension.IssuerAlternativeName.type=CRLExtension
ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.class=com.netscape.cms.crl.CMSIssuingDistributionPointExtension
ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.critical=true
ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.enable=false
ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.indirectCRL=false
ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.onlyContainsCACerts=false
ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.onlyContainsUserCerts=false
ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.onlySomeReasons=""
ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.pointName=
ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.pointType=
ca.crl.ServerCertCRL.extension.IssuingDistributionPoint.type=CRLExtension
ca.crl.ServerCertCRL.includeExpiredCerts=false
ca.crl.ServerCertCRL.includeExpiredCertsOneExtraTime=false
ca.crl.ServerCertCRL.minUpdateInterval=0
ca.crl.ServerCertCRL.nextAsThisUpdateExtension=0
ca.crl.ServerCertCRL.nextUpdateGracePeriod=0
ca.crl.ServerCertCRL.profileCertsOnly=true
ca.crl.ServerCertCRL.profileList=caCMCserverCertWithCRLDP,caCMCECserverCertWithCRLDP
ca.crl.ServerCertCRL.publishOnStart=false
ca.crl.ServerCertCRL.saveMemory=false
ca.crl.ServerCertCRL.signingAlgorithm=SHA256withRSA
ca.crl.ServerCertCRL.updateSchema=1
Copy to Clipboard Toggle word wrap
注意

对于 ECC CA,将以下内容设置为 SHA512withEC

ca.crl.ServerCertCRL.signingAlgorithm=SHA512withEC
Copy to Clipboard Toggle word wrap

7.5.9.2. 在 CA 中设置 CRL HTTP 服务

由 CRL 分发点提供的 CRL 发布到一个文件(请参阅上面的章节)。此文件由非 SSL Tomcat 服务提供,我们添加到 CA 的 server.xml 中,如下所示:

  1. 在文件 /var/lib/pki/rhcs10-RSA-RootCA/conf/server.xml 文件中的 Catalina 服务前添加以下 CRL 服务:

    <Service name="CRL">
      <Connector port="8085" protocol="HTTP/1.1" connectionTimeout="80000"
       maxParameterCount="1000" name="Unsecure" maxHttpHeaderSize="8192"
       acceptCount="100" maxThreads="15" minSpareThreads="25"
       enableLookups="false" disableUploadTimeout="true"/>
      <Engine name="CRL" defaultHost="localhost">
        <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
          <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_crl_access_log" suffix=".txt" pattern="common"/>
        </Host>
      </Engine>
    </Service>
    Copy to Clipboard Toggle word wrap
  2. 在以上 CRL 服务中,选择一个尚未使用的连接器端口号。例如,如果 root CA 的 HTTP 端口为 8080,则选择 8085。确保为 SELinux 和防火墙添加了端口,例如:

    semanage port -a -t http_port_t -p tcp 8085
    firewall-cmd --permanent --add-port=8085/tcp
    firewall-cmd --reload
    Copy to Clipboard Toggle word wrap
    注意

    如果您的所选端口已预先使用另一个 SELinux 上下文分配,您会看到类似如下的错误消息:

    ValueError: Port tcp/8085 already defined
    Copy to Clipboard Toggle word wrap

    您还可以使用以下命令搜索并找出 CRL HTTP 端口是否已预先分配:

    # semanage port -l | grep <port>
    Copy to Clipboard Toggle word wrap

    我们建议您选择另一个端口。但是,如果要使用相同的端口,您可以执行以下操作:

    # semanage port -m -t http_port_t -p tcp 8085
    Copy to Clipboard Toggle word wrap
  3. 服务器重启时,如果不存在,则会在 CA 的 conf 目录下创建目录 CRL/localhost。但是,要准备添加 crl.xml 文件,请执行以下操作:

    mkdir -p  /var/lib/pki/rhcs10-RSA-RootCA/conf/CRL/localhost
    chown -R pkiuser:pkiuser /var/lib/pki/rhcs10-RSA-RootCA/conf/CRL/localhost
    Copy to Clipboard Toggle word wrap
  4. /var/lib/pki/rhcs10-RSA-RootCA/conf/CRL/localhost 下创建一个 crl.xml 文件,并添加以下内容:

    <Context docBase="/var/lib/pki/rhcs10-RSA-RootCA/crl">
     <Resources allowLinking="true" cachingAllowed="false" />
    </Context>
    Copy to Clipboard Toggle word wrap
  5. crl.xml 文件设置 user:group 所有权:

    chown pkiuser:pkiuser  /var/lib/pki/rhcs10-RSA-RootCA/conf/CRL/localhost/crl.xml
    Copy to Clipboard Toggle word wrap
注意

注册配置集中设置的 CRL 分发点如下所示(请参阅下一部分): http://rhcs10.example.com:8085/crl/ServerCertCRL.crl

重要

仅为较小的 CRL 发布或撤销证书,才建议基于文件的 CRL。只有在需要时才建议使用它,比如在本节中描述的 CA 启动设置的情况。

7.5.9.3. 使用 CRL 分发点的注册配置集配置

启用所需的配置集,使其包含 CRL 分发点。这些配置集与上述部分中配置对应的配置集。

  1. /var/lib/pki/<ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/ 目录中打开 ca CMCserverCertWithCRLDP.cfg 配置集(用于注册 RSA 密钥),如下所示:

    # vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCserverCertWithCRLDP.cfg
    …
    enable=true
    …
    policyset.serverCertSet.10.default.params.crlDistPointsPointName_0=http://rhcs10.example.com:8085/crl/ServerCertCRL.crl
    …
    Copy to Clipboard Toggle word wrap
  2. 打开 /var/lib/pki/<ca 实例目录/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/ 目录中的 caCMCECserverCertWithCRLDP.cfg (用于注册 ECC 密钥),如下所示:

    # vi /var/lib/pki/rhcs10-ECC-RootCA/ca/profiles/ca/caCMCECserverCertWithCRLDP.cfg
    …
    enable=true
    …
    policyset.serverCertSet.10.default.params.crlDistPointsPointName_0=http://rhcs10.example.com:20085/crl/ServerCertCRL.crl
    …
    Copy to Clipboard Toggle word wrap
  3. 设置 user:group 所有权:

    chown -R pkiuser:pkiuser  /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCserverCertWithCRLDP.cfg
    chown -R pkiuser:pkiuser  /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCECserverCertWithCRLDP.cfg
    Copy to Clipboard Toggle word wrap
  4. 在 CA 的 CS.cfg 中注册新配置集:

    1. 为每个配置集添加以下行:

      profile.caCMCserverCertWithCRLDP.class_id=caEnrollImpl
      profile.caCMCserverCertWithCRLDP.config=/var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCserverCertWithCRLDP.cfg
      
      profile.caCMCECserverCertWithCRLDP.class_id=caEnrollImpl
      profile.caCMCECserverCertWithCRLDP.config=/var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCECserverCertWithCRLDP.cfg
      Copy to Clipboard Toggle word wrap
    2. 编辑 profile.list 条目,以添加两个新配置文件。例如:

      profile.list=caCMCserverCertWithCRLDP,caCMCECserverCertWithCRLDP,acmeServerCert,caCMCserverCert,caCMCECserverCert, …
      Copy to Clipboard Toggle word wrap

7.5.9.4. 设置以更直接的 CRL 更新

由于服务器证书通常不会撤销,因此最好在撤销时立即更新 CRL。编辑 CA 的 CS.cfg

ca.crl.ServerCertCRL.alwaysUpdate=true
Copy to Clipboard Toggle word wrap

7.5.9.5. 更新 CA 配置后重启 CA

配置完成后,重启 CA:

pki-server restart rhcs10-RSA-RootCA
Copy to Clipboard Toggle word wrap
注意

要验证 CRL 分发点是否正常工作,请按照 验证 CRL 分发点

7.5.10. 验证 CRL 发布点

如果您已使用配置文件 caCMCserverCertWithCRLDP 替换了 root CA 的目录服务器的 server-cert,则在启动与其内部目录服务器建立连接时,会有效地触发由 CA 引用的 CRL 分发点。

本节提供了一种基本方法来验证 CA 中的 CRL 分发点设置(请参阅 对 CRL 分发点的配置支持):

在验证前,您需要启用撤销检查,如下所示:

  1. 要启用证书撤销检查,在相应的 /var/lib/pki/rhcs10-RSA-RootCA/conf/server.xml 文件中:

    1. enableOCSPenableRevocationCheck 设置为 true :

      enableOCSP=true
      or
      enableRevocationCheck=true
      Copy to Clipboard Toggle word wrap
    2. 另外,删除这两个参数及其分配的值:

      ocspResponderURL
      ocspResponderCertNickname
      Copy to Clipboard Toggle word wrap
  2. 通过编辑 CA 的 CS.cfg 文件并将以下内容设置为 false 来禁用旧的撤销检查方法:

    auths.revocationChecking.enabled=false
    Copy to Clipboard Toggle word wrap
  3. 启动 RootCA 实例:

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

7.5.10.1. 验证 CRL 分发点

验证 CRL 发布点:

  1. 检查基于文件的 CRL 发布:

    # ls -l /var/lib/pki/rhcs10-RSA-RootCA/crl
    total 8
    -rw-r--r--. 1 pkiuser pkiuser 574 Jun 20 18:08 ServerCertCRL-20240620-180859.der
    -rw-r--r--. 1 pkiuser pkiuser 613 Jun 20 18:09 ServerCertCRL-20240620-180938.der
    lrwxrwxrwx. 1 pkiuser pkiuser  68 Jun 20 18:09 ServerCertCRL.crl -> /var/lib/pki/rhcs10-RSA-RootCA/crl/ServerCertCRL-20240620-180938.der
    Copy to Clipboard Toggle word wrap
  2. 显示并验证 CRL 的内容

    # BtoA /var/lib/pki/rhcs10-RSA-RootCA/crl/ServerCertCRL.crl /var/lib/pki/rhcs10-RSA-RootCA/crl/ServerCertCRL.bin
    # PrettyPrintCrl /var/lib/pki/rhcs10-RSA-RootCA/crl/ServerCertCRL.bin
    Certificate Revocation List:
            Data:
                Version:  v2
                Signature Algorithm: SHA256withRSA - 1.2.840.113549.1.1.11
                Issuer: CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA
                This Update: Thursday, June 20, 2024 6:09:38 PM EDT America/New_York
                Next Update: Thursday, June 20, 2024 9:00:00 PM EDT America/New_York
                Revoked Certificates:
                    Serial Number: 0xF6FDEF3
                    Revocation Date: Thursday, June 20, 2024 6:09:38 PM EDT America/New_York
                    Extensions:
                        Identifier: Revocation Reason - 2.5.29.21
                            Critical: no
                            Reason: Certificate_Hold
            Extensions:
                Identifier: CRL Number - 2.5.29.20
                    Critical: no
                    Number: 21
            Signature:
                Algorithm: SHA256withRSA - 1.2.840.113549.1.1.11
                Signature:
                    69:38:47:5D:E4:50:17:C5:6C:60:3F:1B:D8:B4:62:4D:
                    8B:11:FC:31:E4:26:6B:07:B6:BB:2C:7E:48:10:F4:DD:
                    0A:67:17:CB:DF:4E:1A:50:BE:4F:8F:61:B4:91:AE:DA:
                    E5:58:D5:FE:54:D9:94:B3:38:E1:B6:2C:19:C4:93:54:
                    D5:5E:8B:61:4F:89:52:5A:F7:F5:1B:2F:59:19:AD:23:
                    1F:6F:3C:93:17:F3:1A:1C:0B:9A:D2:8F:01:76:08:6E:
                    DA:DD:6F:2D:75:54:D3:D4:40:9A:2B:5D:8B:D5:BB:8B:
                    AF:89:E4:13:A7:F1:8A:AF:0A:72:26:E3:3D:FE:B3:90:
                    2B:F7:88:57:E9:8B:E7:82:B6:D3:F3:80:CD:F7:87:77:
                    69:AF:39:90:5E:46:9C:C2:C4:FA:44:01:77:6D:8F:2D:
                    5A:BD:B9:39:3F:E4:99:E7:F9:FD:2D:CD:FA:87:C1:42:
                    A4:D0:3B:87:0B:28:30:2D:2A:68:F2:68:7C:00:A8:4B:
                    AC:38:49:5A:03:D1:B2:CE:45:D8:C1:6A:3F:42:F0:04:
                    F6:CC:43:83:E8:19:41:6F:0A:64:95:C3:57:8F:54:53:
                    31:40:58:D4:CD:29:0E:0A:D9:15:E9:08:0C:B8:74:F4:
                    82:B4:4E:51:8F:1C:86:A3:2E:BF:BB:F8:4A:DD:17:07:
                    37:27:0F:8B:5C:5E:75:28:B4:0C:DE:F2:38:B9:0E:AE:
                    73:06:A1:3D:36:85:54:74:E6:C3:4B:78:80:9F:76:42:
                    85:D2:94:FF:A0:0C:7D:23:61:AB:4E:7A:D0:5B:EC:CF:
                    91:E9:CB:80:C4:A1:EB:86:FB:D8:E6:65:AC:48:D0:9F:
                    8B:95:07:A9:CA:D7:34:A9:7B:32:25:1E:F4:21:A8:06:
                    44:73:B4:99:79:B5:69:77:D1:18:3B:40:C5:20:AF:5C:
                    8E:D0:65:AE:34:CF:1F:90:82:97:33:7F:90:E6:D9:BC:
                    49:8F:BE:59:22:FE:09:E5:FA:F2:5F:31:77:6D:F8:99
    Copy to Clipboard Toggle word wrap
重要

不要删除 CRL 文件(soft link file ServerCertCRL.crl,及其关联的 der 文件)。

如果您遇到缺少 CRL 文件的情况,或者意外从 /var/lib/pki/rhcs10-RSA-RootCA/crl/ 中删除,防止 CA 启动,请按照以下步骤重新生成 CRL 文件:

  1. 停止 CA 服务。

    pki-server stop rhcs10-RSA-RootCA
    Copy to Clipboard Toggle word wrap
  2. 在 CA 的 server.xml 中,将 enableRevocationCheckenableOCSP 参数设置为 false (如果它当前设置为 true)。
  3. 在 CA 的 CS.cfg 中,将 ca.crl.ServerCertCRL.publishOnStart= 参数设置为 true。
  4. 启动 CA 服务以重新生成缺少的 CRL 文件:

    pki-server start rhcs10-RSA-RootCA
    Copy to Clipboard Toggle word wrap
  5. 恢复 CRL 文件后,再次停止 CA 服务。
  6. 在 CA 的 CS.cfg 中,将 ca.crl.ServerCertCRL.publishOnStart= 参数恢复为 false。
  7. 在 CA 的 server.xml 中将 enableRevocationCheckenableOCSP 参数设置为 true
  8. 再次启动 CA 服务以应用更改。

按照以下步骤,您可以成功恢复缺少的 CRL 文件,并确保 CA 可以正确启动。

7.5.11. 启用访问横幅

要启用用户界面横幅,请参阅 第 13.7.1 节 “启用访问横幅”

7.5.12. 启用 watchdog 服务

watchdog (nuxwdog)服务提供安全的系统密码管理。详情请查看 第 13.3.2.1 节 “启用 watchdog 服务”

7.5.13. 配置 CMc 注册和吊销(CA)

证书注册和撤销可以通过 CMC 来完成。

7.5.14. Java 控制台的 TLS client-authentication

要要求证书系统管理员在登录到 Java 控制台时提供用户 TLS 客户端证书,请参阅 第 13.2.3.14 节 “设置 pkiconsole 的要求以使用 TLS 客户端证书身份验证”

注意

pkiconsole 已被弃用。

7.5.15. 创建角色用户

创建实际角色用户,以便您可以删除 bootstrap 用户。

要创建用户并将其分配到不同的特权角色来管理证书系统,请参阅 第 18 章 创建角色用户

7.5.16. 删除 bootstrap 用户

创建真实角色用户后,不再需要在安装过程中自动创建的 bootstrap 用户。要删除此帐户,请参阅 第 19 章 删除 Bootstrap 用户,确定您创建了一个分配给个人个人的新管理员帐户。

7.5.17. 禁用多角色支持

要在 bootstrap 用户被删除后禁用多角色支持,请参阅 第 19.1 节 “禁用多角色支持”

7.5.18. KRA 配置

要设置多个 KRA 代理的要求以批准密钥恢复,请参阅 Red Hat Certificate System Administration Guide 中的使用命令行配置 agent-approved key recovery 部分。

7.5.18.2. 配置 KRA 加密设置

要配置密钥加密/包装算法,请参阅 第 16.2 节 “加密 KRA 操作”

7.5.19. 将用户设置为使用用户界面

在用户可以使用批准的用户界面之前,需要执行初始化。需要管理用户(管理角色或其他用户)来设置其客户端访问用户界面的客户端。请参阅 Red Hat Certificate System Administration Guide 中的 Client NSS 数据库初始化 部分。

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

默认情况下,在安装时会启用审计日志记录。但是,需要在安装后手动启用日志签名。

显示当前审计日志记录配置:

# pki-server subsystem-audit-config-show
  Enabled: True
  Log File: audit_signing_log_file
  Buffer Size (bytes): 512
  Flush Interval (seconds): 5
  Max File Size (bytes): 2000
  Rollover Interval (seconds): 2592000
  Expiration Time (seconds): 0
  Log Signing: False
  Signing Certificate: audit_signing_certificate
Copy to Clipboard Toggle word wrap

启用签名的审计日志记录:

  1. 使用 pki-server 实用程序将-- logSigning 选项设置为 true

    # pki-server subsystem-audit-config-mod --logSigning True
      ...
      Log Signing: True
      ...
    Copy to Clipboard Toggle word wrap
  2. 重启实例:

    # systemctl restart pki-tomcatd@instance_name.service
    Copy to Clipboard Toggle word wrap

    OR (如果使用 nuxwdog watchdog

    # systemctl start pki-tomcatd-nuxwdog@instance_name.service
    Copy to Clipboard Toggle word wrap

7.5.21. 更新密码列表

在作为服务器或作为客户端时,红帽认证系统允许对可接受的密码设置限制。这些加密控制在不同的位置配置。

当 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.5.21.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.5.21.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
# pki-server restart rhcs10-RSA-SubCA
# pki-server restart rhcs10-RSA-OCSP-rootca
# pki-server restart rhcs10-RSA-OCSP-subca
# pki-server restart rhcs10-RSA-KRA
Copy to Clipboard Toggle word wrap

或者,如果使用 Nuxwdog watchdog:

# systemctl restart rhcs10-RSA-RootCA
# 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-subca.service
# systemctl restart pki-tomcatd-nuxwdog@rhcs10-RSA-KRA.service
Copy to Clipboard Toggle word wrap

7.5.21.3. 为 DS 实例配置密码

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

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

    1. 启用预期的密码(使用 DS 实例的非 SSL 端口):

      # dsconf -D "cn=Directory Manager" ldap://dir.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://dir.example.com:7389 security ciphers list --enabled
      
      Enter password for cn=Directory Manager on ldap://dir.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.5.22. 为 KRA、TKS 和 和 TPS 启用 OAEP 支持

现在,RHCS 支持 Optimal Asymmetric Encryption Padding (OAEP)密钥嵌套算法,而是使用旧的 PKCS Complete 算法。较新的 HSM 设备和启用了 FIPS 的 NSS 版本通常需要此算法才能使用。当与 KRA 最终交互时,此操作主要会进入 play。KRA 的传输证书用于执行某些其他密钥的公钥嵌套,如 AES 对称密钥。当使用 OAEP 时,OAEP 必须用于嵌套和解封序列,并换行部分,而将部分放在客户端和解封服务器(如 RHCS KRA 或其他子系统)上。

有两种情况:OAEP 最常使用:

  • 在 RHCS 子系统中,如 KRA、TPS 和 TKS。
  • 通过各种与 RHCS 子系统交互的命令行工具使用。

客户端与服务器交互要求两端都使用 OAEP 换行,或根本不使用 OAEP。例如,如果为 OAEP 配置 KRA,与 KRA 交互的命令行工具必须在使用传输证书嵌套密钥时使用 OAEP。

由于我们的 JSS 加密绑定组件稍后支持 OAEP,现在只需配置客户端或服务器来使用 OAEP。证书系统子系统的选择本质上是二进制的,这意味着我们必须选择在 OAEP 中做任何操作(如果调用)或在类似场景中在 OAEP 中做任何操作。客户端程序的用户知道是否为 OAEP 配置服务器后,可以根据默认使用的命令行参数或不使用默认值,决定如何对有问题的客户端进行操作。

本节涉及 OAEP 的子系统的配置。这个子系统配置是在 pkispawn 成功创建 RHCS 子系统实例后执行的。

注意

对 Thales Luna 的有限支持:红帽无法确认 Thales HSM 单元支持 AES key wrapping/unwrapping。请注意,那些需要支持此算法的功能在没有此类支持的情况下将无法正常工作。这些功能包括:KRA: key archival 和 recovery CMC SharedToken 身份验证机制,用于在安装过程中注册 TKS TPS 共享 secret 自动传输

注意:有关将命令行界面与 OAEP 搭配使用的示例,请参阅管理指南。

7.5.22.1. KRA

KRA 是使用 OAEP 的主要证书系统子系统之一。这是因为客户端程序通常使用 KRA 传输证书嵌套密钥,这些密钥随后被 KRA 本身解封。

本节包含 OAEP 以外的设置,用于支持 AES 密钥嵌套/unwrapping 操作,如带有固件 v12.72.1 的 Entrust nShield Connect XC 单元。

在包含子系统的主机上执行以下操作(作为 root):

  1. 停止 kra

    pki-server stop <subsystem instance name>
    Copy to Clipboard Toggle word wrap
  2. 编辑 /var/lib/pki/<subsystem 实例名称>/CS.cfg 配置文件,并添加以下三行:

    keyWrap.useOAEP=true
    kra.legacyPKCS12=false
    kra.nonLegacyAlg=AES/None/PKCS5Padding/Kwp/256
    Copy to Clipboard Toggle word wrap

    上面的第一行与 OAEP 相关,而最后两个设置是免费设置,允许在 OAEP 场景中进行正确的 KRA 操作。以上情形中使用了基于 AES 的"KWP"算法。

  3. 启动 KRA:

    pki-server start <subsystem instance name>
    Copy to Clipboard Toggle word wrap

7.5.22.2. TKS

在包含子系统的主机上执行以下操作(作为 root):

  1. 停止 TKS

    pki-server stop <subsystem instance name>
    Copy to Clipboard Toggle word wrap
  2. 编辑 /var/lib/pki/<subsystem 实例名称>/CS.cfg 配置文件并添加以下条目:

    keyWrap.useOAEP=true
    Copy to Clipboard Toggle word wrap
  3. 启动 TKS:

    pki-server start <subsystem instance name>
    Copy to Clipboard Toggle word wrap

7.5.22.3. TPS

在使用令牌管理系统时,TPS 和 TKS 协同工作。需要在两个子系统上启用 OAEP 才能正常操作。TKS 和 TPS 的常规序列首先安装了 TKS,后接 TPS。当已知为 OAEP 配置 TKS 时,会应用以下说明。

在包含子系统的主机上执行以下操作(作为 root):

  1. 停止 TKS

    pki-server stop <subsystem instance name>
    Copy to Clipboard Toggle word wrap
  2. 编辑 /var/lib/pki/<subsystem 实例名称>/CS.cfg 配置文件并添加以下条目:

    keyWrap.useOAEP=true
    Copy to Clipboard Toggle word wrap
  3. 启动 TKS:

    pki-server start <subsystem instance name>
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat