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
pki-server cert-export ca_signing --cert-file ca_signing.crt
7.5.2.2. 创建 DS 服务器证书 复制链接链接已复制到粘贴板!
7.5.2.2.1. 生成 DS 服务器 CSR 复制链接链接已复制到粘贴板!
作为 DS 管理员:
注意: 确保证书主题 DN 和 SAN 与系统主机名匹配。
7.5.2.2.2. 提交 DS 服务器证书请求: 复制链接链接已复制到粘贴板!
作为 DS 管理员:
pki ca-cert-request-submit --profile caServerCert --csr-file ds_server.csr
$ pki ca-cert-request-submit --profile caServerCert --csr-file ds_server.csr
7.5.2.2.3. 批准证书请求: 复制链接链接已复制到粘贴板!
作为 PKI 代理:
pki -n caadmin ca-cert-request-approve <request ID>
$ pki -n caadmin ca-cert-request-approve <request ID>
7.5.2.3. 检索证书 复制链接链接已复制到粘贴板!
以 DS admin 用户身份检索证书:
pki ca-cert-export <certificate ID> --output-file ds_server.crt
$ pki ca-cert-export <certificate ID> --output-file ds_server.crt
7.5.2.4. 停止 DS 实例 复制链接链接已复制到粘贴板!
在更改 NSS 数据库前停止 DS 实例。
dsctl localhost stop
$ dsctl localhost stop
7.5.2.5. 导入 CA 签名证书 复制链接链接已复制到粘贴板!
作为 DS 管理员,将 CA 签名证书导入到 DS 实例的 nssdb 中。
7.5.2.6. 删除 DS bootstrap 证书 复制链接链接已复制到粘贴板!
如果您已经有 boostrap DS 证书,请删除它们:
7.5.2.7. 导入 DS 服务器证书: 复制链接链接已复制到粘贴板!
验证 DS 服务器证书:
7.5.2.8. 启用 SSL 连接 复制链接链接已复制到粘贴板!
本节只有在之前没有启用 DS 中的 SSL 时才适用。
在 DS 实例中启用 SSL 连接:
dsconf localhost config replace nsslapd-security=on
$ dsconf localhost config replace nsslapd-security=onCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 DS 实例:
dsctl localhost start
$ dsctl localhost startCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 SSL 连接:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
$ certutil -F -d /var/lib/pki/pki-tomcat/conf/alias \
-f /var/lib/pki/pki-tomcat/conf/alias/pwdfile.txt \
-n ds_signing
启动 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 签名证书 复制链接链接已复制到粘贴板!
使用以下命令生成 DS 签名 CSR:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 发出 DS 签名证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导入 DS 签名证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 DS 签名证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.3.2. 创建 DS 服务器证书 复制链接链接已复制到粘贴板!
使用以下命令生成 DS 服务器 CSR:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 发出 DS 服务器证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导入 DS 服务器证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 DS 服务器证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.3.3. 启用 SSL 连接 复制链接链接已复制到粘贴板!
在 DS 实例中启用 SSL 连接:
dsconf localhost config replace nsslapd-security=on
$ dsconf localhost config replace nsslapd-security=onCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启 DS 实例:
dsctl localhost restart
$ dsctl localhost restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 SSL 连接:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
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 服务器。
第二部分是将配置添加到 Red Hat Certificate System 实例,以便它知道要使用 TLS mutual 身份验证与其内部 LDAP 服务器通信的端口和证书。这包括编辑位于 < instance 目录& 文件。例如 gt;/<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
internaldb.ldapauth.bindDN
internaldb.ldapauth.bindPWPrompt
如下所示:
在安装后步骤的末尾重启 CS 实例。
必须配置 internaldb.basedn 和 internaldb.database 参数,以匹配您的特定 LDAP 实例。
为了合规,内部db.ldapauth.authtype=SslClientAuth 和 internaldb.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 分发点。这些配置集与上述部分中配置对应的配置集。
在
/var/lib/pki/<ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/ 目录中打开配置集(用于注册 RSA 密钥),如下所示:caCMCserverCertWithCRLDP.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 打开
/var/lib/pki/<ca 实例目录/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/ 目录中的(用于注册 ECC 密钥),如下所示:caCMCECserverCertWithCRLDP.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 设置 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
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.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 CA 的
CS.cfg中注册一个新的配置集:为每个配置集添加以下行:
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
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.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
profile.list条目,以添加两个新配置文件。例如:profile.list=caCMCserverCertWithCRLDP,caCMCECserverCertWithCRLDP,acmeServerCert,caCMCserverCert,caCMCECserverCert, …
profile.list=caCMCserverCertWithCRLDP,caCMCECserverCertWithCRLDP,acmeServerCert,caCMCserverCert,caCMCECserverCert, …Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.9. 配置对 CRL 分发点的支持 复制链接链接已复制到粘贴板!
有关 CRL 分发点的更多信息,为什么需要它们,以及它们最适合的位置,请参阅 对 CA 启用自动撤销检查。
要配置对 CRL 分发点的支持,我们描述了如何设置基于文件的 CRL 发布程序以及 CRL 的分区。您还将了解如何启用证书注册配置文件,以使用 CRL 分发点扩展发布证书。最后,我们描述了如何将 CA 的 LDAP 服务器的临时服务器认证替换为从 CRL 分发点配置文件发布的证书。
在继续以下更改前,停止 RootCA 实例:
pki-server stop rhcs10-RSA-RootCA
pki-server stop rhcs10-RSA-RootCA
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>
cp /var/lib/pki/rhcs10-RSA-RootCA/ca/conf/CS.cfg /var/lib/pki/rhcs10-RSA-RootCA/ca/conf/CS.cfg.bak.<date>
7.5.9.1.1. 设置基于文件的发布者: crlFilePublisher 复制链接链接已复制到粘贴板!
本节中的配置创建基于文件的 CRL 发布程序,名为 crlFilePublisher。正确设置后,CRL 以 DER 格式保存在 /var/lib/pki/rhcs10-RSA-RootCA/crl 目录中。
创建 CRL 目录以发布基于文件的分区 CRL:
mkdir /var/lib/pki/rhcs10-RSA-RootCA/crl chown pkiuser.pkiuser /var/lib/pki/rhcs10-RSA-RootCA/crl
mkdir /var/lib/pki/rhcs10-RSA-RootCA/crl chown pkiuser.pkiuser /var/lib/pki/rhcs10-RSA-RootCA/crlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 CA 的 CS.cfg 中添加以下内容:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.9.1.2. 设置基于文件的发布规则:FileCrlRule 复制链接链接已复制到粘贴板!
本节中的配置创建名为 FileCrlRule 的基于文件的发布规则。predicate 指定到名为 ServerCertCRL的分区 CRL 的发布点(在为 通过配置集发布的证书设置 CRL-partitioning 中定义)。
-
在 CA 的
CS.cfg中添加以下内容:
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
ca.publish.rule.instance.LdapCrlRule.predicate=issuingPointId==MasterCRL
7.5.9.1.4. 为通过配置集发布的证书设置 CRL-partitioning 复制链接链接已复制到粘贴板!
本节中的配置演示了如何将 CRL 分区到上面定义的 FileCrlRule 中使用的一个较小的子集。CRL 由在 profileList 参数中指定的证书注册配置文件进行分区。以逗号分隔的列表可用于多个配置集(例如,caCMCserverCertWithCRLDP.cfg 和 caCMCECserverCertWithCRLDP.cfg)。
在 CA 的 CS.cfg 中添加以下内容:
对于 ECC CA,将以下内容设置为 SHA512withEC :
ca.crl.ServerCertCRL.signingAlgorithm=SHA512withEC
ca.crl.ServerCertCRL.signingAlgorithm=SHA512withEC
7.5.9.2. 在 CA 中设置 CRL HTTP 服务 复制链接链接已复制到粘贴板!
由 CRL 分发点提供的 CRL 发布到一个文件(请参阅上面的章节)。此文件由非 SSL Tomcat 服务提供,我们添加到 CA 的 server.xml 中,如下所示:
在文件
/var/lib/pki/rhcs10-RSA-RootCA/conf/server.xml文件中的 Catalina 服务前添加以下 CRL 服务:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在以上 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
semanage port -a -t http_port_t -p tcp 8085 firewall-cmd --permanent --add-port=8085/tcp firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您的所选端口已预先使用另一个 SELinux 上下文分配,您会看到类似如下的错误消息:
ValueError: Port tcp/8085 already defined
ValueError: Port tcp/8085 already definedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您还可以使用以下命令搜索并找出 CRL HTTP 端口是否已预先分配:
semanage port -l | grep <port>
# semanage port -l | grep <port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 我们建议您选择另一个端口。但是,如果要使用相同的端口,您可以执行以下操作:
semanage port -m -t http_port_t -p tcp 8085
# semanage port -m -t http_port_t -p tcp 8085Copy to Clipboard Copied! Toggle word wrap Toggle overflow 服务器重启时,如果不存在,则会在 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
mkdir -p /var/lib/pki/rhcs10-RSA-RootCA/conf/CRL/localhost chown -R pkiuser:pkiuser /var/lib/pki/rhcs10-RSA-RootCA/conf/CRL/localhostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
/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>
<Context docBase="/var/lib/pki/rhcs10-RSA-RootCA/crl"> <Resources allowLinking="true" cachingAllowed="false" /> </Context>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为
crl.xml文件设置user:group所有权:chown pkiuser:pkiuser /var/lib/pki/rhcs10-RSA-RootCA/conf/CRL/localhost/crl.xml
chown pkiuser:pkiuser /var/lib/pki/rhcs10-RSA-RootCA/conf/CRL/localhost/crl.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
注册配置集中设置的 CRL 分发点如下所示(请参阅下一部分): http://rhcs10.example.com:8085/crl/ServerCertCRL.crl
仅为较小的 CRL 发布或撤销证书,才建议基于文件的 CRL。只有在需要时才建议使用它,比如在本节中描述的 CA 启动设置的情况。
7.5.9.3. 使用 CRL 分发点的注册配置集配置 复制链接链接已复制到粘贴板!
启用所需的配置集,使其包含 CRL 分发点。这些配置集与上述部分中配置对应的配置集。
在
/var/lib/pki/<ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/ 目录中打开配置集(用于注册 RSA 密钥),如下所示:caCMCserverCertWithCRLDP.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 打开 /var/lib/pki/<ca 实例目录/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/ 目录中的 caCMCECserverCertWithCRLDP.cfg (用于注册 ECC 密钥),如下所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置 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
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.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 CA 的 CS.cfg 中注册新配置集:
为每个配置集添加以下行:
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
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.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 profile.list 条目,以添加两个新配置文件。例如:
profile.list=caCMCserverCertWithCRLDP,caCMCECserverCertWithCRLDP,acmeServerCert,caCMCserverCert,caCMCECserverCert, …
profile.list=caCMCserverCertWithCRLDP,caCMCECserverCertWithCRLDP,acmeServerCert,caCMCserverCert,caCMCECserverCert, …Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.9.4. 设置以更直接的 CRL 更新 复制链接链接已复制到粘贴板!
由于服务器证书通常不会撤销,因此最好在撤销时立即更新 CRL。编辑 CA 的 CS.cfg :
ca.crl.ServerCertCRL.alwaysUpdate=true
ca.crl.ServerCertCRL.alwaysUpdate=true
7.5.9.5. 更新 CA 配置后重启 CA 复制链接链接已复制到粘贴板!
配置完成后,重启 CA:
pki-server restart rhcs10-RSA-RootCA
pki-server restart rhcs10-RSA-RootCA
要验证 CRL 分发点是否正常工作,请按照 验证 CRL 分发点。
7.5.10. 验证 CRL 发布点 复制链接链接已复制到粘贴板!
如果您已使用配置文件 caCMCserverCertWithCRLDP 替换了 root CA 的目录服务器的 server-cert,则在启动与其内部目录服务器建立连接时,会有效地触发由 CA 引用的 CRL 分发点。
本节提供了一种基本方法来验证 CA 中的 CRL 分发点设置(请参阅 对 CRL 分发点的配置支持):
在验证前,您需要启用撤销检查,如下所示:
要启用证书撤销检查,在相应的
/var/lib/pki/rhcs10-RSA-RootCA/conf/server.xml文件中:将
enableOCSP或enableRevocationCheck设置为 true :enableOCSP=true or enableRevocationCheck=true
enableOCSP=true or enableRevocationCheck=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,删除这两个参数及其分配的值:
ocspResponderURL ocspResponderCertNickname
ocspResponderURL ocspResponderCertNicknameCopy to Clipboard Copied! Toggle word wrap Toggle overflow
通过编辑 CA 的 CS.cfg 文件并将以下内容设置为 false 来禁用旧的撤销检查方法:
auths.revocationChecking.enabled=false
auths.revocationChecking.enabled=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 RootCA 实例:
pki-server start rhcs10-RSA-RootCA
pki-server start rhcs10-RSA-RootCACopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.10.1. 验证 CRL 分发点 复制链接链接已复制到粘贴板!
验证 CRL 发布点:
检查基于文件的 CRL 发布:
ls -l /var/lib/pki/rhcs10-RSA-RootCA/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.derCopy to Clipboard Copied! Toggle word wrap Toggle overflow 显示并验证 CRL 的内容
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
不要删除 CRL 文件(soft link file ServerCertCRL.crl,及其关联的 der 文件)。
如果您遇到缺少 CRL 文件的情况,或者意外从 /var/lib/pki/rhcs10-RSA-RootCA/crl/ 中删除,防止 CA 启动,请按照以下步骤重新生成 CRL 文件:
停止 CA 服务。
pki-server stop rhcs10-RSA-RootCA
pki-server stop rhcs10-RSA-RootCACopy to Clipboard Copied! Toggle word wrap Toggle overflow -
在 CA 的
server.xml中,将enableRevocationCheck或enableOCSP参数设置为false(如果它当前设置为true)。 -
在 CA 的
CS.cfg中,将ca.crl.ServerCertCRL.publishOnStart=参数设置为 true。 启动 CA 服务以重新生成缺少的 CRL 文件:
pki-server start rhcs10-RSA-RootCA
pki-server start rhcs10-RSA-RootCACopy to Clipboard Copied! Toggle word wrap Toggle overflow - 恢复 CRL 文件后,再次停止 CA 服务。
-
在 CA 的
CS.cfg中,将ca.crl.ServerCertCRL.publishOnStart=参数恢复为 false。 -
在 CA 的
server.xml中将enableRevocationCheck或enableOCSP参数设置为true。 - 再次启动 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 来完成。
- 有关启用 CMC 共享文件系统服务功能的详情,请参考 第 13.7.8 节 “启用 CMC Shared Secret 功能”。
-
有关启用
PopLinkWittness功能的详情,请参考 第 13.7.7 节 “启用PopLinkWittnessV2功能”。 -
有关为 Web 用户界面启用
CMCRevoke的详情,请参考 第 13.7.9 节 “为 Web 用户界面启用 CMCRevoke”。
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 配置 复制链接链接已复制到粘贴板!
7.5.18.1. 为密钥恢复授权(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实用程序将-- logSigning 选项设置为true:pki-server subsystem-audit-config-mod --logSigning True
# pki-server subsystem-audit-config-mod --logSigning True ... Log Signing: True ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启实例:
systemctl restart pki-tomcatd@instance_name.service
# systemctl restart pki-tomcatd@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow OR (如果使用
nuxwdog watchdog)systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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。
-
编辑
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.5.21.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-SubCA pki-server restart rhcs10-RSA-OCSP-rootca pki-server restart rhcs10-RSA-OCSP-subca pki-server restart rhcs10-RSA-KRA
# 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
或者,如果使用 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
# 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
7.5.21.3. 为 DS 实例配置密码 复制链接链接已复制到粘贴板!
默认情况下,Directory 服务器实例会继承操作系统上启用的密码。如果要设置它以便密码列表与证书系统的名称匹配,请对每个 DS 实例执行以下步骤:
在 DS 主机 dir.example.com 上:
启用预期的密码(使用 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"
# 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 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.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
注意:有关将命令行界面与 OAEP 搭配使用的示例,请参阅管理指南。
7.5.22.1. KRA 复制链接链接已复制到粘贴板!
KRA 是使用 OAEP 的主要证书系统子系统之一。这是因为客户端程序通常使用 KRA 传输证书嵌套密钥,这些密钥随后被 KRA 本身解封。
本节包含 OAEP 以外的设置,用于支持 AES 密钥嵌套/unwrapping 操作,如带有固件 v12.72.1 的 Entrust nShield Connect XC 单元。
在包含子系统的主机上执行以下操作(作为 root):
停止 kra
pki-server stop <subsystem instance name>
pki-server stop <subsystem instance name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
/var/lib/pki/<subsystem 实例名称>/CS.cfg配置文件,并添加以下三行:keyWrap.useOAEP=true kra.legacyPKCS12=false kra.nonLegacyAlg=AES/None/PKCS5Padding/Kwp/256
keyWrap.useOAEP=true kra.legacyPKCS12=false kra.nonLegacyAlg=AES/None/PKCS5Padding/Kwp/256Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上面的第一行与 OAEP 相关,而最后两个设置是免费设置,允许在 OAEP 场景中进行正确的 KRA 操作。以上情形中使用了基于 AES 的"KWP"算法。
启动 KRA:
pki-server start <subsystem instance name>
pki-server start <subsystem instance name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.22.2. TKS 复制链接链接已复制到粘贴板!
在包含子系统的主机上执行以下操作(作为 root):
停止 TKS
pki-server stop <subsystem instance name>
pki-server stop <subsystem instance name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
/var/lib/pki/<subsystem 实例名称>/CS.cfg配置文件并添加以下条目:keyWrap.useOAEP=true
keyWrap.useOAEP=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 TKS:
pki-server start <subsystem instance name>
pki-server start <subsystem instance name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.5.22.3. TPS 复制链接链接已复制到粘贴板!
在使用令牌管理系统时,TPS 和 TKS 协同工作。需要在两个子系统上启用 OAEP 才能正常操作。TKS 和 TPS 的常规序列首先安装了 TKS,后接 TPS。当已知为 OAEP 配置 TKS 时,会应用以下说明。
在包含子系统的主机上执行以下操作(作为 root):
停止 TKS
pki-server stop <subsystem instance name>
pki-server stop <subsystem instance name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 /var/lib/pki/<subsystem 实例名称>/CS.cfg 配置文件并添加以下条目:
keyWrap.useOAEP=true
keyWrap.useOAEP=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 TKS:
pki-server start <subsystem instance name>
pki-server start <subsystem instance name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow