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 管理员:
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
$ 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
注意: 确保证书主题 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-review <request ID> --action approve
$ pki -n caadmin ca-cert-request-review <request ID> --action approve
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 中。
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"
# 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"
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 -F -d /etc/dirsrv/slapd-localhost \ -f /etc/dirsrv/slapd-localhost/pwdfile.txt \ -n Self-Signed-CA
$ certutil -F -d /etc/dirsrv/slapd-localhost \
-f /etc/dirsrv/slapd-localhost/pwdfile.txt \
-n Server-Cert
$ certutil -F -d /etc/dirsrv/slapd-localhost \
-f /etc/dirsrv/slapd-localhost/pwdfile.txt \
-n Self-Signed-CA
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
$ pki \
-d /etc/dirsrv/slapd-localhost \
-C /etc/dirsrv/slapd-localhost/pwdfile.txt \
nss-cert-import \
--cert ds_server.crt \
Server-Cert
验证 DS 服务器证书:
certutil -L -d /etc/dirsrv/slapd-localhost -n Server-Cert
$ certutil -L -d /etc/dirsrv/slapd-localhost -n Server-Cert
...
Certificate Trust Flags:
SSL Flags:
User
Email Flags:
User
Object Signing Flags:
User
7.5.2.8. 启用 SSL 连接
本节只有在之前没有启用 DS 中的 SSL 时才适用。
在 DS 实例中启用 SSL 连接:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dsconf localhost config replace nsslapd-security=on
$ dsconf localhost config replace nsslapd-security=on
启动 DS 实例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dsctl localhost start
$ dsctl localhost start
验证 SSL 连接:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDAPTLS_REQCERT=never ldapsearch \ -H ldaps://$HOSTNAME:636 \ -x \ -D "cn=Directory Manager" \ -w Secret.123 \ -b "" \ -s base
$ LDAPTLS_REQCERT=never ldapsearch \ -H ldaps://$HOSTNAME:636 \ -x \ -D "cn=Directory Manager" \ -w Secret.123 \ -b "" \ -s base
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 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
$ 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
发出 DS 签名证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ 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
导入 DS 签名证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ 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
验证 DS 签名证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -L -d /etc/dirsrv/slapd-localhost -n Self-Signed-CA
$ 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
7.5.3.2. 创建 DS 服务器证书
使用以下命令生成 DS 服务器 CSR:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ 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
发出 DS 服务器证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ 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
导入 DS 服务器证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki \ -d /etc/dirsrv/slapd-localhost \ -C /etc/dirsrv/slapd-localhost/pwdfile.txt \ nss-cert-import \ --cert ds_server.crt \ Server-Cert
$ pki \ -d /etc/dirsrv/slapd-localhost \ -C /etc/dirsrv/slapd-localhost/pwdfile.txt \ nss-cert-import \ --cert ds_server.crt \ Server-Cert
验证 DS 服务器证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -L -d /etc/dirsrv/slapd-localhost -n Server-Cert
$ certutil -L -d /etc/dirsrv/slapd-localhost -n Server-Cert ... Certificate Trust Flags: SSL Flags: User Email Flags: User Object Signing Flags: User
7.5.3.3. 启用 SSL 连接
在 DS 实例中启用 SSL 连接:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dsconf localhost config replace nsslapd-security=on
$ dsconf localhost config replace nsslapd-security=on
重启 DS 实例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dsctl localhost restart
$ dsctl localhost restart
验证 SSL 连接:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDAPTLS_REQCERT=never ldapsearch \ -H ldaps://$HOSTNAME:636 \ -x \ -D "cn=Directory Manager" \ -w Secret.123 \ -b "" \ -s base
$ LDAPTLS_REQCERT=never ldapsearch \ -H ldaps://$HOSTNAME:636 \ -x \ -D "cn=Directory Manager" \ -w Secret.123 \ -b "" \ -s base
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
创建内容时,请使用以下格式:Copy to Clipboard Copied! Toggle word wrap Toggle overflow certmap rhcs <certificate issuer DN> rhcs:CmapLdapAttr seeAlso rhcs:verifyCert on
certmap rhcs <certificate issuer DN> rhcs:CmapLdapAttr seeAlso rhcs:verifyCert on
例如:
Copy 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 on
- 配置后,重启 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
如下所示:
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
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
在安装后步骤的末尾重启 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. 启用访问横幅
要启用用户界面横幅,请参阅 第 13.7.1 节 “启用访问横幅”。
7.5.9. 启用 watchdog 服务
watchdog (nuxwdog
)服务提供安全的系统密码管理。详情请查看 第 13.3.2.1 节 “启用 watchdog 服务”。
7.5.10. 配置 CMc 注册和吊销(CA)
证书注册和撤销可以通过 CMC 来完成。
- 有关启用 CMC 共享文件系统服务功能的详情,请参考 第 13.7.8 节 “启用 CMC Shared Secret 功能”。
-
有关启用
PopLinkWittness
功能的详情,请参考 第 13.7.7 节 “启用PopLinkWittnessV2
功能”。 -
有关为 Web 用户界面启用
CMCRevoke
的详情,请参考 第 13.7.9 节 “为 Web 用户界面启用 CMCRevoke”。
7.5.11. Java 控制台的 TLS client-authentication
要要求证书系统管理员在登录到 Java 控制台时提供用户 TLS 客户端证书,请参阅 第 13.2.3.14 节 “设置 pkiconsole
的要求以使用 TLS 客户端证书身份验证”。
pkiconsole
已被弃用。
7.5.12. 创建角色用户
创建实际角色用户,以便您可以删除 bootstrap 用户。
要创建用户并将其分配到不同的特权角色来管理证书系统,请参阅 第 18 章 创建角色用户。
7.5.13. 删除 bootstrap 用户
创建真实角色用户后,不再需要在安装过程中自动创建的 bootstrap 用户。要删除此帐户,请参阅 第 19 章 删除 Bootstrap 用户,确定您创建了一个分配给个人个人的新管理员帐户。
7.5.14. 禁用多角色支持
要在 bootstrap 用户被删除后禁用多角色支持,请参阅 第 19.1 节 “禁用多角色支持”。
7.5.15. KRA 配置
7.5.15.1. 为密钥恢复授权(KRA)添加多个代理批准的要求
要设置多个 KRA 代理的要求以批准密钥恢复,请参阅 Red Hat Certificate System Administration Guide 中的使用命令行配置 agent-approved key recovery 部分。
7.5.15.2. 配置 KRA 加密设置
要配置密钥加密/包装算法,请参阅 第 16.2 节 “加密 KRA 操作”。
7.5.16. 将用户设置为使用用户界面
在用户可以使用批准的用户界面之前,需要执行初始化。需要管理用户(管理角色或其他用户)来设置其客户端访问用户界面的客户端。请参阅 Red Hat Certificate System Administration Guide 中的 Client NSS 数据库初始化 部分。
7.5.17. 启用签名的审计日志记录
默认情况下,在安装时会启用审计日志记录。但是,需要在安装后手动启用日志签名。
显示当前审计日志记录配置:
pki-server subsystem-audit-config-show
# 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
启用签名的审计日志记录:
使用
pki-server
实用程序将-- logSigning 选项设置为true
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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.service
OR (如果使用
nuxwdog watchdog
)Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.service
7.5.18. 更新密码列表
在作为服务器或作为客户端时,红帽认证系统允许对可接受的密码设置限制。这些加密控制在不同的位置配置。
当 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.18.1. 为充当服务器的 CS 实例配置密码
给定实例的所需密码集合由 < CS 实例目录> /conf/server.xml
文件中的 SSLHostConfig 元素定义。
按照以下说明配置每个 CS 实例。
在编辑前备份原始 server.xml
文件,例如 server.xml.orig
。
-
编辑
server.xml
文件,导航到主 SSL 端口的 Connector 声明,并找到 SSLHostConfig 元素。 使用以下配置修改 SSLHostConfig 元素:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <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">
以上加密列表表示此 RHCS 版本中以 OpenSSL 格式声明的密码集合,其中:
-
cipher=" … "
: 建立所需的受限密码(如 TLS)。在这个格式中,密码名称以冒号分开。 -
protocols=" … "
: 建立您需要的 TLS 版本(如 1.2)。
7.5.18.2. 为作为客户端的 CS 实例配置密码
当 CS 实例充当客户端时,在实例的 CS.cfg
配置文件中添加所需的密码列表。根据角色配置所有客户端实例。
在编辑前备份原始 CS.cfg
文件,例如 CS.cfg.orig
。
当 CS 实例充当其内部 LDAP 数据库的客户端时。
在 <
instance directory> / <instance type> /conf/CS.cfg
文件中添加以下行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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_SHA384
注意为确保内部 LDAP 数据库启用了所需的密码,请按照 为 DS 实例配置密码。
当 CA 实例充当 KRA 的客户端时。
在 <
instance directory> /ca/conf/CS.cfg
文件中添加以下行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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_SHA384
当 TPS 实例充当 CA、KRA 或 TKS 的客户端时。
在 <
instance directory> /tps/conf/CS.cfg
文件中添加以下行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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_SHA384
您必须重启每个服务器实例才能使修改生效,例如:
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.18.3. 为 DS 实例配置密码
默认情况下,Directory 服务器实例会继承操作系统上启用的密码。如果要设置它以便密码列表与证书系统的名称匹配,请对每个 DS 实例执行以下步骤:
在 DS 主机 rhds11.example.com 上:
启用预期的密码(使用 DS 实例的非 SSL 端口):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dsconf -D "cn=Directory Manager" ldap://rhds11.example.com:7389 security ciphers set "+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,+TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,+TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
# dsconf -D "cn=Directory Manager" ldap://rhds11.example.com:7389 security ciphers set "+TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,+TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,+TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,+TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
重启 DS 实例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dsctl slapd-CC-RSA-SubCA-LDAP stop
# dsctl slapd-CC-RSA-SubCA-LDAP stop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dsctl slapd-CC-RSA-SubCA-LDAP start
# dsctl slapd-CC-RSA-SubCA-LDAP start
通过列出启用的密码来验证:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dsconf -D "cn=Directory Manager" ldap://rhds11.example.com:7389 security ciphers list --enabled
# 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
7.5.19. 为 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.19.1. KRA
KRA 是使用 OAEP 的主要证书系统子系统之一。这是因为客户端程序通常使用 KRA 传输证书嵌套密钥,这些密钥随后被 KRA 本身解封。
本节包含 OAEP 以外的设置,用于支持 AES 密钥嵌套/unwrapping 操作,如带有固件 v12.72.1 的 Entrust nShield Connect XC 单元。
在包含子系统的主机上执行以下操作(作为 root):
停止 kra
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server stop <subsystem instance name>
pki-server stop <subsystem instance name>
编辑
/var/lib/pki/<subsystem 实例名称>/CS.cfg
配置文件,并添加以下三行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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/256
上面的第一行与 OAEP 相关,而最后两个设置是免费设置,允许在 OAEP 场景中进行正确的 KRA 操作。以上情形中使用了基于 AES 的"KWP"算法。
启动 KRA:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server start <subsystem instance name>
pki-server start <subsystem instance name>
7.5.19.2. TKS
在包含子系统的主机上执行以下操作(作为 root):
停止 TKS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server stop <subsystem instance name>
pki-server stop <subsystem instance name>
编辑
/var/lib/pki/<subsystem 实例名称>/CS.cfg
配置文件并添加以下条目:Copy to Clipboard Copied! Toggle word wrap Toggle overflow keyWrap.useOAEP=true
keyWrap.useOAEP=true
启动 TKS:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server start <subsystem instance name>
pki-server start <subsystem instance name>
7.5.19.3. TPS
在使用令牌管理系统时,TPS 和 TKS 协同工作。需要在两个子系统上启用 OAEP 才能正常操作。TKS 和 TPS 的常规序列首先安装了 TKS,后接 TPS。当已知为 OAEP 配置 TKS 时,会应用以下说明。
在包含子系统的主机上执行以下操作(作为 root):
停止 TKS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server stop <subsystem instance name>
pki-server stop <subsystem instance name>
编辑 /var/lib/pki/<subsystem 实例名称>/CS.cfg 配置文件并添加以下条目:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow keyWrap.useOAEP=true
keyWrap.useOAEP=true
启动 TKS:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server start <subsystem instance name>
pki-server start <subsystem instance name>