7.3. 创建并配置 RootCA (第 I 部分)
要安装和配置 RootCA 实例,请使用两个 pkispawn
方法之一:
7.3.1. 安装 RootCA 实例(单步方法) 复制链接链接已复制到粘贴板!
使用单步方法配置 RootCA 实例需要创建配置文件并运行 pkispawn
工具。
在本例中,根CA 安装在 rhcs10.example.com (以及其他实例)上,其内部目录服务器位于 rhds11.example.com 上。
先决条件
- 以 root 用户身份登录 rhcs10.example.com。
- 您有 第 7.1.2.1 节 “为 RootCA 安装 DS 实例”。在我们的示例中,CC-RSA-RootCA-LDAP 是 RootCA 的内部数据库。
流程
在要托管 RHCS 实例的机器上的所选位置(如
/root/pki_rsa
)创建一个 CA 安装文件,该文件将托管 RHCS 实例(rhcs10.example.com)。cd /root/pki_rsa
# cd /root/pki_rsa
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vi rootca_inst.cfg
# vi rootca_inst.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意除非明确指定,否则系统证书别名将自动命名为
pki_instance_name
的值。为了避免共享 HSM 上的证书别名冲突,请为每个实例创建使用不同的实例名称。
以下安装文件中指定的值是示例。除了更改 HSM 密码外,还要相应地编辑值,如 ports, directory, nicknames, domains…
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
pkispawn
工具来安装 RHCS CA 实例:pkispawn -s CA -f rootca_inst.cfg --debug
# pkispawn -s CA -f rootca_inst.cfg --debug
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤
显示已安装 CA 的状态:
pki-server status rhcs10-RSA-RootCA
# pki-server status rhcs10-RSA-RootCA
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意 Unsecure EE、Secure EE、Agent、Admin 和 pkiconsole URL。
运行以下命令,验证 CA 的健全性。它应该显示证书:
pki -p 8443 -h rhcs10.example.com ca-cert-find
# pki -p 8443 -h rhcs10.example.com ca-cert-find
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
当第一次使用 pki 命令连接到 RootCA 时,将显示 CA 签名证书的不受信任的签发者警告,如下所示:
WARNING: UNTRUSTED ISSUER encountered on 'CN=rhcs10.example.com,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' indicates a non-trusted CA cert 'CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' Trust this certificate (y/N)?
WARNING: UNTRUSTED ISSUER encountered on 'CN=rhcs10.example.com,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' indicates a non-trusted CA cert 'CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA'
Trust this certificate (y/N)?
如果主题 DN 与主机名匹配,请选择 y
以信任 CA 签名证书。警告不会再次显示。
使用本节(单步方法)完成后,直接跳过 第 7.3.3 节 “禁用非CMC 和非安装配置集” 以继续 RootCA 安装。
7.3.2. 安装 RootCA 实例(两步方法) 复制链接链接已复制到粘贴板!
使用两步方法配置 RootCA 实例需要创建配置文件并运行 pkispawn
工具两次。
在本例中,根CA 安装在 rhcs10.example.com 上。
先决条件
- 以 root 用户身份登录 rhcs10.example.com。
- 您有 第 7.1.2.1 节 “为 RootCA 安装 DS 实例”。在我们的示例中,CC-RSA-RootCA-LDAP 是 RootCA 的内部数据库。
RootCA 安装的第一步
在要托管 RHCS 实例的机器上的所选位置(如
/root/pki_rsa
)创建一个 CA 安装文件,该文件将托管 RHCS 实例(rhcs10.example.com)。cd /root/pki_rsa vi rootca_inst.cfg
# cd /root/pki_rsa # vi rootca_inst.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意除非明确指定,否则系统证书别名将自动命名为
pki_instance_name
的值。为了避免共享 HSM 上的证书别名冲突,请为每个实例创建使用不同的实例名称。但是,在两步安装中,两个文件的pki_instance_name
值应该匹配。以下值只是示例。运行
pkispawn
工具来安装 RHCS CA 实例:pkispawn -s CA -f rootca_inst.cfg --skip-configuration --debug
# pkispawn -s CA -f rootca_inst.cfg --skip-configuration --debug
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
步骤配置
如 步骤自定义之间的 所述,您可以自定义某些内容,如系统证书的证书配置文件。
为 CA 签名证书设置 Subject Key Identifier 扩展消息摘要算法:
打开此 CA 的签名证书的注册配置集:
vi /var/lib/pki/rhcs10-RSA-RootCA/ca/conf/caCert.profile
# vi /var/lib/pki/rhcs10-RSA-RootCA/ca/conf/caCert.profile
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加以下参数:
7.default.params.messageDigest=SHA-256
7.default.params.messageDigest=SHA-256
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存该文件。
同样,对于此 CA 将在以后发布的 CA 签名证书执行相同的操作:
为 CA 签名证书打开注册配置集:
vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caInstallCACert.cfg
# vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caInstallCACert.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCcaCert.cfg
# vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCcaCert.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加以下参数:
policyset.caCertSet.8.default.params.messageDigest=SHA-256
policyset.caCertSet.8.default.params.messageDigest=SHA-256
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存该文件。
此处也可以进行其他在步骤间的配置更改。例如,如果要扩展此子系统审计签名证书的有效性周期:
打开对应的配置文件:
vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caInternalAuthAuditSigningCert.cfg
# vi /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caInternalAuthAuditSigningCert.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将以下范围参数改为所需的值:
policyset.auditSigningCertSet.2.constraint.params.range=720 policyset.auditSigningCertSet.2.default.params.range=720
policyset.auditSigningCertSet.2.constraint.params.range=720 policyset.auditSigningCertSet.2.default.params.range=720
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存该文件。在下一部分中完成
pkispawn
的第二步骤后,您应该预期此子系统的审计签名证书的有效性,以匹配您更改的值。
RootCA 安装的第二步
pkispawn
的第二步涉及以不同方式针对同一文件运行工具,从而配置 RHCS CA 实例。
运行
pkispawn
工具来配置 CA:pkispawn -s CA -f rootca_inst.cfg --skip-installation --debug
# pkispawn -s CA -f rootca_inst.cfg --skip-installation --debug
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤
显示已安装 CA 的状态:
pki-server status rhcs10-RSA-RootCA
# pki-server status rhcs10-RSA-RootCA
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意 Unsecure EE、Secure EE、Agent、Admin 和 pkiconsole URL。
运行以下命令,验证 CA 的健全性。它应该显示证书:
pki -p 8443 -h rhcs10.example.com ca-cert-find
# pki -p 8443 -h rhcs10.example.com ca-cert-find
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
当第一次使用 pki 命令连接到 RootCA 时,将显示 CA 签名证书的不受信任的签发者警告,如下所示:
WARNING: UNTRUSTED ISSUER encountered on 'CN=rhcs10.example.com,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' indicates a non-trusted CA cert 'CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' Trust this certificate (y/N)?
WARNING: UNTRUSTED ISSUER encountered on 'CN=rhcs10.example.com,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA' indicates a non-trusted CA cert 'CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA'
Trust this certificate (y/N)?
如果主题 DN 与主机名匹配,请选择 y
以信任 CA 签名证书。警告不会再次显示。
7.3.3. 禁用非CMC 和非安装配置集 复制链接链接已复制到粘贴板!
该配置文件存储在 /var/lib/pki_rsa/rhcs10-RSA-RootCA/ca/profiles/ca/
中。CMC 配置文件在其配置集 ID 中包含 "CMC"。本节提供了禁用非CMC 和非安装配置集的步骤。
流程
生成要编辑的非CMC 配置集列表:
ls /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca | grep -v CMC | grep -v Install | grep -v caInternal | grep -v caECInternal | grep -v caAdminCert | grep -v caECAdminCert | tee /root/pki_rsa/ca-profile-deletelist.txt
# ls /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca | grep -v CMC | grep -v Install | grep -v caInternal | grep -v caECInternal | grep -v caAdminCert | grep -v caECAdminCert | tee /root/pki_rsa/ca-profile-deletelist.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 停止 RootCA 实例:
pki-server stop rhcs10-RSA-RootCA
pki-server stop rhcs10-RSA-RootCA
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于列表中的每个配置集,将
visible
和enable
参数从true
改为false
。例如,使用以下命令设置visible=false
和enable=false
:cat /root/pki_rsa/ca-profile-deletelist.txt | while read line; do sed -i 's/^visible=true/visible=false/g' /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/$line; sed -i 's/^enable=true/enable=false/g' /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/$line; done
# cat /root/pki_rsa/ca-profile-deletelist.txt | while read line; do sed -i 's/^visible=true/visible=false/g' /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/$line; sed -i 's/^enable=true/enable=false/g' /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/$line; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,还要将
caCMCUserCert
配置集的visible
参数改为false
:sed -i 's/^visible=true/visible=false/' /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCUserCert.cfg
# sed -i 's/^visible=true/visible=false/' /var/lib/pki/rhcs10-RSA-RootCA/ca/profiles/ca/caCMCUserCert.cfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 RootCA 实例:
pki-server start rhcs10-RSA-RootCA
pki-server start rhcs10-RSA-RootCA
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.4. 创建 CA 链文件 复制链接链接已复制到粘贴板!
在后续步骤中,您将需要 CA 证书和 CA 链。务必要使证书链文件保持最新状态。我们会将 CA 链文件 ca-chain.pem
以及单独的 CA .pem
文件放在 rhcs10.example.com (托管 CS 实例的机器)和 rhds11.example.com (托管 DS 实例的机器)下。
创建 CA 链文件供以后使用:
certutil -L -d /var/lib/pki/rhcs10-RSA-RootCA/alias -n "CA Signing Cert - rhcs10-RSA-RootCA" -a > /opt/pki_rsa/rootCA.pem
# certutil -L -d /var/lib/pki/rhcs10-RSA-RootCA/alias -n "CA Signing Cert - rhcs10-RSA-RootCA" -a > /opt/pki_rsa/rootCA.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cp /opt/pki_rsa/rootCA.pem /opt/pki_rsa/ca-chain.pem
# cp /opt/pki_rsa/rootCA.pem /opt/pki_rsa/ca-chain.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将文件复制到 rhds11.example.com (托管 DS 实例的机器):
scp /opt/pki_rsa/rootCA.pem root@rhds11.example.com:/opt/pki_rsa
# scp /opt/pki_rsa/rootCA.pem root@rhds11.example.com:/opt/pki_rsa
Copy to Clipboard Copied! Toggle word wrap Toggle overflow scp /opt/pki_rsa/ca-chain.pem root@rhds11.example.com:/opt/pki_rsa
# scp /opt/pki_rsa/ca-chain.pem root@rhds11.example.com:/opt/pki_rsa
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 rhds11.example.com 上,编辑
/etc/openldap/ldap.conf
文件,使TLS_CACERT
指向我们刚才创建的 CA 链文件:echo "TLS_CACERT /opt/pki_rsa/ca-chain.pem" >> /etc/openldap/ldap.conf
# echo "TLS_CACERT /opt/pki_rsa/ca-chain.pem" >> /etc/openldap/ldap.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启 RootCA 的 DS 实例:
dsctl slapd-CC-RSA-RootCA-LDAP restart
# dsctl slapd-CC-RSA-RootCA-LDAP restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.5. 准备 RootCA 以签署其他 CMC 证书请求 复制链接链接已复制到粘贴板!
本节中的流程旨在创建一个包含 RootCA 的 bootstrap admin 证书/密钥的 nssdb,以便 pki 管理员在后续步骤中为角色用户证书签署 CMC 完整请求。
在以前的版本中,在 pkispawn
配置文件中,我们指定了以下参数:
pki_client_dir=/opt/pki_rsa/rhcs10-RSA-RootCA pki_client_admin_cert_p12=/opt/pki_rsa/rhcs10-RSA-RootCA/ca_admin_cert.p12 pki_client_database_dir=/opt/pki_rsa/rhcs10-RSA-RootCA/certs_db
pki_client_dir=/opt/pki_rsa/rhcs10-RSA-RootCA
pki_client_admin_cert_p12=/opt/pki_rsa/rhcs10-RSA-RootCA/ca_admin_cert.p12
pki_client_database_dir=/opt/pki_rsa/rhcs10-RSA-RootCA/certs_db
这些参数告诉 pkispawn
在哪里放置 bootstrap 管理证书和密钥,因此您不需要按照本节中的步骤进行操作。但是,由于我们希望向读者展示一个工作示例,为了便于执行和描述,因此我们设计了 /root/.dogtag/pki_rsa_bootstrap/certs_db
作为 nssdb 的位置,该示例中包含所有 bootstrap admin 用户证书和密钥。
前提条件
- 以 root 用户身份登录 rhcs10.example.com。
流程
创建客户端 nssdb:
pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-init
# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-init
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意指定 at
-d
的目录应尚不存在。如果存在,另一个 RHCS 实例可能会使用它。在这种情况下,建议将其移出,或者指定不同的路径。您可以使用以下内容检查是否有证书:certutil -L -d /root/.dogtag/pki_rsa_bootstrap/certs_db
# certutil -L -d /root/.dogtag/pki_rsa_bootstrap/certs_db
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果不存在,您可以选择
Yes
来覆盖。将 CA 签名证书导入到 nssdb 中:
pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-import "CA Signing Cert - rhcs10-RSA-RootCA" --ca-cert /opt/pki_rsa/rootCA.pem
# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-import "CA Signing Cert - rhcs10-RSA-RootCA" --ca-cert /opt/pki_rsa/rootCA.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 RootCA bootstrap admin 证书/密钥导入到 nssdb 中:
pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-import --pkcs12 /opt/pki_rsa/rhcs10-RSA-RootCA/ca_admin_cert.p12 --pkcs12-password SECret.123
# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-import --pkcs12 /opt/pki_rsa/rhcs10-RSA-RootCA/ca_admin_cert.p12 --pkcs12-password SECret.123 ---------------------------------------- Imported certificates from PKCS #12 file ----------------------------------------
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证:
列出证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以 bootstrap admin 用户身份,列出 RootCA 中的用户:
pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db/ -c SECret.123 -p 8443 -n "PKI Bootstrap Administrator for RSA-RootCA" ca-user-find
# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db/ -c SECret.123 -p 8443 -n "PKI Bootstrap Administrator for RSA-RootCA" ca-user-find
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.6. 检查随机序列号 复制链接链接已复制到粘贴板!
列出证书,以确保所有子系统证书都有随机序列号。
pki -p 8443 ca-cert-find | grep -i serial
# pki -p 8443 ca-cert-find | grep -i serial
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.7. 验证 RootCA 签名证书没有 AIA 复制链接链接已复制到粘贴板!
务必要注意,因为这是一个自签名(root) CA 签名证书,因此不应包含 AIA (授权信息访问)扩展。
验证 RootCA 签名证书是否已正确发布:
certutil -L -d /var/lib/pki/rhcs10-RSA-RootCA/alias/ -n "CA Signing Cert - rhcs10-RSA-RootCA"
# certutil -L -d /var/lib/pki/rhcs10-RSA-RootCA/alias/ -n "CA Signing Cert - rhcs10-RSA-RootCA"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您应该观察没有 AIA 扩展。
要允许 RootCA 角色用户证书包含指向 OCSP 实例的 AIA 扩展(在以下部分中创建),相关部分放置在 第 7.5 节 “创建并配置 RootCA (第二部分)” 中,AFTER OCSP 实例创建。
7.3.8. 配置对 CRL 分发点的支持 复制链接链接已复制到粘贴板!
有关 CRL 分发点的更多信息,为什么需要它们,以及它们最适合的位置,请参阅 第 9.4.1.2 节 “在 CA 上启用自动撤销检查”。
要配置对 CRL 分发点的支持,我们描述了如何设置基于文件的 CRL 发布程序以及 CRL 的分区。您还将了解如何启用证书注册配置文件,以使用 CRL 分发点扩展发布证书。最后,我们描述了如何将 CA 的 LDAP 服务器的临时服务器认证替换为从 CRL 分发点配置文件发布的证书。
在继续以下更改前,停止 RootCA 实例:
pki-server stop rhcs10-RSA-RootCA
# pki-server stop rhcs10-RSA-RootCA
7.3.8.1. 支持 Server Cert CRL File Publishing 的 CA 设置 复制链接链接已复制到粘贴板!
在继续操作前,在编辑前保存配置文件副本:
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.3.8.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/crl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 CA 的
CS.cfg
中添加以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.8.1.2. 设置基于文件的发布规则:FileCrlRule 复制链接链接已复制到粘贴板!
本节中的配置创建名为 FileCrlRule 的基于文件的发布规则。predicate 指定到名为 ServerCertCRL 的分区 CRL 的发布点(在 第 7.3.8.1.4 节 “为通过配置集发布的证书设置 CRL-partitioning”中定义)。
在 CA 的
CS.cfg
中添加以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.8.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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.8.1.4. 为通过配置集发布的证书设置 CRL-partitioning 复制链接链接已复制到粘贴板!
本节中的配置演示了如何将 CRL 分区到上面定义的 FileCrlRule 中使用的一个较小的子集。CRL 由在 profileList 参数中指定的证书注册配置文件进行分区。以逗号分隔的列表可用于多个配置集(例如,caCMCserverCertWithCRLDP.cfg 和 caCMCECserverCertWithCRLDP.cfg)。
在 CA 的
CS.cfg
中添加以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
对于 ECC CA,将以下内容设置为 SHA512withEC :
ca.crl.ServerCertCRL.signingAlgorithm=SHA512withEC
ca.crl.ServerCertCRL.signingAlgorithm=SHA512withEC
7.3.8.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 --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您的所选端口已预先使用另一个 SELinux 上下文分配,您会看到类似如下的错误消息:
ValueError: Port tcp/8085 already defined
ValueError: Port tcp/8085 already defined
Copy 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 8085
Copy 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/localhost
Copy 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.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注册配置集中设置的 CRL 分发点如下所示(请参阅下一部分): http://rhcs10.example.com:8085/crl/ServerCertCRL.crl
仅为较小的 CRL 发布或撤销证书,才建议基于文件的 CRL。只有在需要时才建议使用它,比如在本节中描述的 CA 启动设置的情况。
7.3.8.3. 使用 CRL 分发点的注册配置集配置 复制链接链接已复制到粘贴板!
启用所需的配置集,使其包含 CRL 分发点。这些配置集与上述部分中配置对应的配置集。
在
/var/lib/pki/<ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/profiles/ca/ 目录中打开
配置集(用于注册 RSA 密钥),如下所示:ca
CMCserverCertWithCRLDP.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 密钥),如下所示:ca
CMCECserverCertWithCRLDP.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.cfg
Copy 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.cfg
Copy 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.3.8.4. 设置以更直接的 CRL 更新 复制链接链接已复制到粘贴板!
由于服务器证书通常不会撤销,因此最好在撤销时立即更新 CRL。编辑 CA 的 CS.cfg
:
ca.crl.ServerCertCRL.alwaysUpdate=true
ca.crl.ServerCertCRL.alwaysUpdate=true
7.3.8.5. 更新 CA 配置后启动 CA 复制链接链接已复制到粘贴板!
配置完成后,启动 CA:
pki-server start rhcs10-RSA-RootCA
# pki-server start rhcs10-RSA-RootCA
当 CA 的目录服务器 Server-Cert
被正确替换后,将指示验证 第 7.5.1 节 “替换临时 DS 证书(RootCA)” 末尾的 CRL 分发点设置。