7.11. 创建并配置 TPS 实例
本节描述了针对 SubCA 安装和配置 TPS 实例。
TPS 系统证书将由 SubCA 发布,TPS 将加入 SubCA 安全域。
在本例中,TPS 安装在 rhcs10.example.com 上,其内部目录服务器位于 rhds11.example.com 上。
确保文件 /opt/pki_rsa/ca-chain.pem 包含完整的 CA 证书链(SubCA 和 RootCA 证书):
ls -l /opt/pki_rsa/ca-chain.pem cat /opt/pki_rsa/ca-chain.pem
# ls -l /opt/pki_rsa/ca-chain.pem
# cat /opt/pki_rsa/ca-chain.pem
7.11.1. 替换临时 DS 证书(TPS) 复制链接链接已复制到粘贴板!
在安装 TPS 之前,我们为 TPS 的目录服务器发布官方 SSL 服务器证书来替换临时 bootstrap。为此,我们首先要为目录服务器证书创建一个证书签名请求(CSR),然后将此请求提交到 CA。
确保您使用 DS 服务器的 FQDN,如 cn=rhds11.example.com / host=rhds11.example.com。
为真实 DS 证书生成 CSR
在 rhds11.example.com 上,为真实 DS 证书生成 PKCS10 证书签名请求:
停止 DS :
dsctl slapd-CC-RSA-TPS-LDAP stop
# dsctl slapd-CC-RSA-TPS-LDAP stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
certutil工具生成 CSR:certutil -R -d /etc/dirsrv/slapd-CC-RSA-TPS-LDAP -s "CN=rhds11.example.com" -g 2048 -f /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/pwdfile.txt -a -o /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/Server-Cert-tps.csr -z /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/noise.txt
# certutil -R -d /etc/dirsrv/slapd-CC-RSA-TPS-LDAP -s "CN=rhds11.example.com" -g 2048 -f /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/pwdfile.txt -a -o /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/Server-Cert-tps.csr -z /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/noise.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要编辑上面获取的
Server-Cert-tps.csr输出文件,以删除"Begin Certificate Request"前的几行。例如:
vi /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/Server-Cert-tps.csr
# vi /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/Server-Cert-tps.csrCopy to Clipboard Copied! Toggle word wrap Toggle overflow CSR 文件必须以"-----BEGIN CERTIFICATE REQUEST-----"行开头,并以"-----END CERTIFICATE REQUEST-----"行结尾。
远程将
Server-Cert-tps.csr文件复制到 CA 所在的系统中。例如:scp /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/Server-Cert-tps.csr root@rhcs10.example.com:/root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tps.csr
# scp /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/Server-Cert-tps.csr root@rhcs10.example.com:/root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tps.csrCopy to Clipboard Copied! Toggle word wrap Toggle overflow
发出真实 DS 证书
在 rhcs10.example.com 上,发布实际的 SSL 服务器证书:
生成 CMC 请求:
创建
CMCRequest配置文件。例如:vim /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-tps_pkcs10.cfg
# vim /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-tps_pkcs10.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
CMCRequest命令生成请求:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
提交 CMC 请求:
创建
HttpClient配置文件。例如:vim /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_dirsrv-tps.cfg
# vim /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_dirsrv-tps.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
HttpClient命令提交请求:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
处理 CMC 响应:
使用
CMCResponse处理响应,以 PEM 格式单独以链的形式显示所有证书:重要使用 "-v" 选项运行 CMCResponse 将链中每个证书的 PEM 返回为 Cert:0, Cert:1 等。在所有 PEM 下,输出也会以用户打印格式显示链中的每个证书。由于证书没有以固定顺序显示,因此为了确定其在链中的位置,您必须检查每个 "Certificate" 下的"Subject: "。对应的 PEM 显示在上面的同一位置。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将新
Server-CertDS 证书保存到 bootstrap 证书目录(例如/root/.dogtag/pki_rsa_bootstrap/certs_db/)中的文件中。.pem文件必须以 header-----BEGIN CERTIFICATE-----开头,并以 footer-----END CERTIFICATE-----结束。例如:vi /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tps.pem
# vi /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tps.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
Server-Cert-tps.pem是 Directory Server 实例的新Server-Cert证书,充当 TPS 的 internaldb。注意RootCA 的签名证书应与以下命令的输出匹配:
certutil -L -d /var/lib/pki/rhcs10-RSA-RootCA/alias/ -n "CA Signing Cert - rhcs10-RSA-RootCA" -a
# certutil -L -d /var/lib/pki/rhcs10-RSA-RootCA/alias/ -n "CA Signing Cert - rhcs10-RSA-RootCA" -aCopy to Clipboard Copied! Toggle word wrap Toggle overflow
远程将新的
Server-Cert证书复制到 rhds11.example.com。例如:scp /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tps.pem root@rhds11.example.com:/etc/dirsrv/slapd-CC-RSA-TPS-LDAP/
# scp /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tps.pem root@rhds11.example.com:/etc/dirsrv/slapd-CC-RSA-TPS-LDAP/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
替换临时 DS 证书
在 rhds11.example.com 上,将临时 DS 证书替换为实际的 DS 证书:
将
dirsrv目录的内容保存到备份目录中:cp -r /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/ /etc/dirsrv/save-rsa/slapd-CC-RSA-TPS-LDAP/
# cp -r /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/ /etc/dirsrv/save-rsa/slapd-CC-RSA-TPS-LDAP/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除旧的 DS 证书:
certutil -D -d /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/pwdfile.txt -n "Server-Cert"
# certutil -D -d /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/pwdfile.txt -n "Server-Cert"Copy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -D -d /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/pwdfile.txt -n "Self-Signed-CA"
# certutil -D -d /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/pwdfile.txt -n "Self-Signed-CA"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 逐个导入新创建的 DS 证书和 CA 证书。例如:
certutil -d /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-RootCA" -i /opt/pki_rsa/rootCA.pem
# certutil -d /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-RootCA" -i /opt/pki_rsa/rootCA.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -d /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-SubCA" -i /opt/pki_rsa/subCA.pem
# certutil -d /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-SubCA" -i /opt/pki_rsa/subCA.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -d /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/pwdfile.txt -A -t "u,u,u" -n "Server-Cert" -i /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/Server-Cert-tps.pem
# certutil -d /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/pwdfile.txt -A -t "u,u,u" -n "Server-Cert" -i /etc/dirsrv/slapd-CC-RSA-TPS-LDAP/Server-Cert-tps.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 列出证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 DS :
dsctl slapd-CC-RSA-TPS-LDAP start
# dsctl slapd-CC-RSA-TPS-LDAP startCopy to Clipboard Copied! Toggle word wrap Toggle overflow 测试以确认 LDAP 服务器已启动并在运行(如果是单独的系统,则在 CA 主机上进行测试):
ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:17636 -b "dc=example,dc=com" -w SECret.123
# ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:17636 -b "dc=example,dc=com" -w SECret.123Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果在单独的系统上测试,请在
ldapsearch命令前面包含 CA 证书链,例如:LDAPTLS_CACERT=/opt/pki_rsa/ca-chain.pem ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:17636 -b "dc=example,dc=com" -w SECret.123
# LDAPTLS_CACERT=/opt/pki_rsa/ca-chain.pem ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:17636 -b "dc=example,dc=com" -w SECret.123Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.11.2. 配置 TPS 身份验证数据库 复制链接链接已复制到粘贴板!
TPS 依赖于身份验证数据库来验证智能卡令牌。
如需更多信息,请参阅 第 2.5.2.4 节 “令牌数据库”。
7.11.2.1. 为 TPS 身份验证数据库设置 LDAP 服务器 复制链接链接已复制到粘贴板!
在安装 TPS 之前,我们安装一个将托管 TPS AuthDB 的目录服务器实例。
本节中提到的 TPS 身份验证数据库仅使用演示目的的简化步骤创建。
以 root 用户身份在 rhds11.example.com 上:
安装目录服务器实例,CA 将用它来验证令牌。红帽目录服务器分别侦听 LDAP/LDAPS 端口 9389 和 9636。
在所选位置(如
/root/pki_rsa)创建 TPS AuthDB 目录服务器安装文件:vim /root/pki_rsa/tps-auth-db-ldap.cfg
# vim /root/pki_rsa/tps-auth-db-ldap.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑上一步中创建的
.cfg文件。取消注释以下参数并把它设置为自定义安装:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 安装 Directory 服务器实例:
dscreate from-file /root/pki_rsa/tps-auth-db-ldap.cfg
# dscreate from-file /root/pki_rsa/tps-auth-db-ldap.cfg Starting installation... Completed installation for CC-RSA-TPS-AUTH-DBCopy to Clipboard Copied! Toggle word wrap Toggle overflow
添加 ACI (Access Control 指令)规则以允许匿名绑定访问。默认情况下禁用它。
在所选位置(如
/root/pki_rsa/dirsrv/)创建ldapaci.ldif文件,其内容如下:dn: dc=example,dc=com changetype: modify add: aci aci: (targetattr!="userPassword || aci")(version 3.0; acl "Enable anonymous access"; allow (read, search, compare) userdn="ldap:///anyone";)
dn: dc=example,dc=com changetype: modify add: aci aci: (targetattr!="userPassword || aci")(version 3.0; acl "Enable anonymous access"; allow (read, search, compare) userdn="ldap:///anyone";)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
ldapmodify命令来添加 ACI:ldapmodify -x -h rhds11.example.com -p 9389 -D 'cn=Directory Manager' -W -f /root/pki_rsa/dirsrv/ldapaci.ldif
# ldapmodify -x -h rhds11.example.com -p 9389 -D 'cn=Directory Manager' -W -f /root/pki_rsa/dirsrv/ldapaci.ldifCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.11.2.2. 替换临时 DS 证书(TPS AuthDB) 复制链接链接已复制到粘贴板!
在安装 TPS 之前,我们为 TPS 身份验证数据库发布官方 SSL 服务器证书,以替换临时 bootstrap 证书。为此,我们首先要为目录服务器证书创建一个证书签名请求(CSR),然后将此请求提交到 CA。
确保您使用 DS 服务器的 FQDN,如 cn=rhds11.example.com / host=rhds11.example.com。
为真实 DS 证书生成 CSR
在 rhds11.example.com 上,为真实 DS 证书生成 PKCS10 证书签名请求:
停止 DS :
dsctl slapd-CC-RSA-TPS-AUTH-DB stop
# dsctl slapd-CC-RSA-TPS-AUTH-DB stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
certutil工具生成 CSR:certutil -R -d /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB -s "CN=rhds11.example.com" -g 2048 -f /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/pwdfile.txt -a -o /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/Server-Cert-tps-auth.csr -z /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/noise.txt
# certutil -R -d /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB -s "CN=rhds11.example.com" -g 2048 -f /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/pwdfile.txt -a -o /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/Server-Cert-tps-auth.csr -z /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/noise.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要编辑上面获取的
Server-Cert-tps-auth.csr输出文件,以在"Begin Certificate Request"之前删除几行。例如:
vi /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/Server-Cert-tps-auth.csr
# vi /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/Server-Cert-tps-auth.csrCopy to Clipboard Copied! Toggle word wrap Toggle overflow CSR 文件必须以"-----BEGIN CERTIFICATE REQUEST-----"行开头,并以"-----END CERTIFICATE REQUEST-----"行结尾。
远程将
Server-Cert-tps-auth.csr文件复制到 CA 所在的系统中。例如:scp /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/Server-Cert-tps-auth.csr root@rhcs10.example.com:/root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tps-auth.csr
# scp /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/Server-Cert-tps-auth.csr root@rhcs10.example.com:/root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tps-auth.csrCopy to Clipboard Copied! Toggle word wrap Toggle overflow
发出真实 DS 证书
在 rhcs10.example.com 上,发布实际的 SSL 服务器证书:
生成 CMC 请求:
创建
CMCRequest配置文件。例如:vim /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-tps-auth_pkcs10.cfg
# vim /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-tps-auth_pkcs10.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
CMCRequest命令生成请求:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
提交 CMC 请求:
创建
HttpClient配置文件。例如:vim /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_dirsrv-tps-auth.cfg
# vim /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_dirsrv-tps-auth.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
HttpClient命令提交请求:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
处理 CMC 响应:
使用
CMCResponse处理响应,以 PEM 格式单独以链的形式显示所有证书:重要使用 "-v" 选项运行 CMCResponse 将链中每个证书的 PEM 返回为 Cert:0, Cert:1 等。在所有 PEM 下,输出也会以用户打印格式显示链中的每个证书。由于证书没有以固定顺序显示,因此为了确定其在链中的位置,您必须检查每个 "Certificate" 下的"Subject: "。对应的 PEM 显示在上面的同一位置。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将新
Server-CertDS 证书保存到 bootstrap 证书目录(例如/root/.dogtag/pki_rsa_bootstrap/certs_db/)中的文件中。.pem文件必须以 header-----BEGIN CERTIFICATE-----开头,并以 footer-----END CERTIFICATE-----结束。例如:vi /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tps-auth.pem
# vi /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tps-auth.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
Server-Cert-tps-auth.pem是 Directory Server 实例的新Server-Cert证书,充当 TPS 的身份验证 db。注意RootCA 的签名证书应与以下命令的输出匹配:
certutil -L -d /var/lib/pki/rhcs10-RSA-RootCA/alias/ -n "CA Signing Cert - rhcs10-RSA-RootCA" -a
# certutil -L -d /var/lib/pki/rhcs10-RSA-RootCA/alias/ -n "CA Signing Cert - rhcs10-RSA-RootCA" -aCopy to Clipboard Copied! Toggle word wrap Toggle overflow
远程将新的
Server-Cert证书复制到 rhds11.example.com。例如:scp /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tps-auth.pem root@rhds11.example.com:/etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/
# scp /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tps-auth.pem root@rhds11.example.com:/etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
替换临时 DS 证书
在 rhds11.example.com 上,将临时 DS 证书替换为实际的 DS 证书:
将
dirsrv目录的内容保存到备份目录中:cp -r /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/ /etc/dirsrv/save-rsa/slapd-CC-RSA-TPS-AUTH-DB/
# cp -r /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/ /etc/dirsrv/save-rsa/slapd-CC-RSA-TPS-AUTH-DB/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除旧的 DS 证书:
certutil -D -d /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/ -f /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/pwdfile.txt -n "Server-Cert"
# certutil -D -d /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/ -f /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/pwdfile.txt -n "Server-Cert"Copy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -D -d /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/ -f /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/pwdfile.txt -n "Self-Signed-CA"
# certutil -D -d /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/ -f /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/pwdfile.txt -n "Self-Signed-CA"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 逐个导入新创建的 DS 证书和 CA 证书。例如:
certutil -d /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/ -f /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-RootCA" -i /opt/pki_rsa/rootCA.pem
# certutil -d /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/ -f /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-RootCA" -i /opt/pki_rsa/rootCA.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -d /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/ -f /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-SubCA" -i /opt/pki_rsa/subCA.pem
# certutil -d /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/ -f /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-SubCA" -i /opt/pki_rsa/subCA.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -d /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/ -f /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/pwdfile.txt -A -t "u,u,u" -n "Server-Cert" -i /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/Server-Cert-tps-auth.pem
# certutil -d /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/ -f /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/pwdfile.txt -A -t "u,u,u" -n "Server-Cert" -i /etc/dirsrv/slapd-CC-RSA-TPS-AUTH-DB/Server-Cert-tps-auth.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 列出证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 DS :
dsctl slapd-CC-RSA-TPS-AUTH-DB start
# dsctl slapd-CC-RSA-TPS-AUTH-DB startCopy to Clipboard Copied! Toggle word wrap Toggle overflow 测试以确认 LDAP 服务器已启动并在运行(如果是单独的系统,则在 CA 主机上进行测试):
ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:9636 -b "dc=example,dc=com" -w SECret.123
# ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:9636 -b "dc=example,dc=com" -w SECret.123Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果在单独的系统上测试,请在
ldapsearch命令前面包含 CA 证书链,例如:LDAPTLS_CACERT=/opt/pki_rsa/ca-chain.pem ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:9636 -b "dc=example,dc=com" -w SECret.123
# LDAPTLS_CACERT=/opt/pki_rsa/ca-chain.pem ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:9636 -b "dc=example,dc=com" -w SECret.123Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.11.3. 安装 TPS 实例 复制链接链接已复制到粘贴板!
要安装 TPS , 请使用单步方法或两步方法。以下流程描述了单步方法。如果要使用两步方法进行安装,请参阅 ] 和 xref:_rootca_two_step[。
BEFORE 安装 TPS,如果您打算将 AIA 扩展指向外部 OCSP 实例,而不是 CA 的内部 OCSP,请确保首先按照 第 7.7.4 节 “设置默认 AIA 扩展以指向此 OCSP” 中的步骤操作。
先决条件
- 以 root 用户身份登录 rhcs10.example.com。
- 在我们的示例中,您有 第 7.1.2.7 节 “为 TPS 安装 DS 实例”,CC-RSA-TPS-LDAP 是 TPS 的内部数据库。
流程
在所选位置(如
/root/pki_rsa)创建一个 TPS 安装文件:cd /root/pki_rsa
# cd /root/pki_rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow vi tps_inst.cfg
# vi tps_inst.cfgCopy 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工具来安装 TPS 子系统:pkispawn -s TPS -f tps_inst.cfg --debug
# pkispawn -s TPS -f tps_inst.cfg --debugCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这将在
/var/lib/pki/rhcs10-RSA-TPS中创建 TPS 实例。
为便于参考,如果您想要使用两步方法安装 TPS:
首先使用
--skip-configuration选项运行pkispawn工具来安装 RHCS TPS 实例:pkispawn -s TPS -f tps_inst.cfg --skip-configuration --debug
# pkispawn -s TPS -f tps_inst.cfg --skip-configuration --debugCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 在两个安装步骤间自定义配置文件
运行
pkispawn工具来配置 TPS:pkispawn -s TPS -f tps_inst.cfg --skip-installation --debug
# pkispawn -s TPS -f tps_inst.cfg --skip-installation --debugCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
显示安装的 TPS 实例的状态:
pki-server status rhcs10-RSA-TPS
# pki-server status rhcs10-RSA-TPSCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意安全代理、Admin 和 pkiconsole URL。
- 验证 TPS 代理网页是否可以访问。
将 TPS bootstrap 管理员证书导入到 nssdb 中:
pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db client-cert-import --pkcs12 /opt/pki_rsa/rhcs10-RSA-TPS/tps_admin_cert.p12 --pkcs12-password SECret.123
# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db client-cert-import --pkcs12 /opt/pki_rsa/rhcs10-RSA-TPS/tps_admin_cert.p12 --pkcs12-password SECret.123 ---------------------------------------- Imported certificates from PKCS #12 file ----------------------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow
只有在完成下一小节中详述的设置步骤后,才能执行实际的智能卡令牌注册测试。
7.11.4. 测试令牌侧密钥生成 复制链接链接已复制到粘贴板!
本节使用令牌密钥生成(而不是 服务器端密钥生成)简单演示令牌 密钥注册。为了测试令牌侧密钥生成,我们将创建一个新的测试用户,然后通过 tpsclient 工具格式化并注册该用户的令牌。
准备测试令牌侧密钥生成
临时更新
userKey配置集以仅生成签名证书:停止 TPS:
pki-server stop rhcs10-RSA-TPS
# pki-server stop rhcs10-RSA-TPSCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
/var/lib/pki/rhcs10-RSA-TPS/tps/conf/CS.cfg配置文件,并将op.enroll.userKey.keyGen.keyType.num参数从 2 改为 1。例如:op.enroll.userKey.keyGen.keyType.num=1
op.enroll.userKey.keyGen.keyType.num=1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 TPS:
pki-server start rhcs10-RSA-TPS
# pki-server start rhcs10-RSA-TPSCopy to Clipboard Copied! Toggle word wrap Toggle overflow
创建一个用于测试令牌注册的新用户,如 jdoe :
首先检查 TPS WebUI 是否启动:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 POSIX 用户创建一个 .cfg 文件,如下所示:
vi ldap_user1_add.cfg
# vi ldap_user1_add.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在文件中添加以下内容并保存:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置匿名绑定访问:
创建一个包含以下内容的 ldif 文件:
dn: ou=People,dc=example,dc=com changetype: modify add: aci aci: (targetattr!="userPassword || aci")(version 3.0; acl "Enable anonymous access"; allow (read, search, compare) userdn="ldap:///anyon e";)
dn: ou=People,dc=example,dc=com changetype: modify add: aci aci: (targetattr!="userPassword || aci")(version 3.0; acl "Enable anonymous access"; allow (read, search, compare) userdn="ldap:///anyon e";)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来启用匿名绑定访问:
ldapadd -h rhds11-5.example.com -p 389 -c -D "cn=Directory Manager" -w SECret.123 -f ldapci.ldif
ldapadd -h rhds11-5.example.com -p 389 -c -D "cn=Directory Manager" -w SECret.123 -f ldapci.ldifCopy to Clipboard Copied! Toggle word wrap Toggle overflow
使用之前创建的
.cfg文件运行ldapadd命令,以添加 jdoe 用户:LDAPTLS_CACERT=/opt/pki_rsa/ca-chain.pem ldapadd -x -D 'cn=directory manager' -H ldaps://rhds11.example.com:9636 -w SECret.123 -f ldap_user1_add.cfg
# LDAPTLS_CACERT=/opt/pki_rsa/ca-chain.pem ldapadd -x -D 'cn=directory manager' -H ldaps://rhds11.example.com:9636 -w SECret.123 -f ldap_user1_add.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow
测试令牌侧密钥生成
使用 tpsclient 工具格式化和注册令牌来测试令牌侧密钥生成。
在单独的 非FIPS的系统上,安装
tpsclient软件包。例如:dnf install -y redhat-pki-tps
# dnf install -y redhat-pki-tpsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您在 Fedora 系统中测试,提供
tpsclient工具的对应软件包将是dogtag-pki-tools。将 TPS 服务器主机名和 IP 地址添加到
/etc/hosts文件中:echo "<TPS server IP> rhcs10.example.com" >> /etc/hosts
# echo "<TPS server IP> rhcs10.example.com" >> /etc/hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为新创建的用户测试格式和注册:
准备,以格式化 jdoe 的令牌。创建
.txt文件:vi token_format.txt
# vi token_format.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加以下内容:主机和端口值应与您自己的端口匹配;该端口应当是非 SSL 端口。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 jdoe 准备注册令牌。创建
.txt文件:vi token_enroll.txt
# vi token_enroll.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加以下内容:主机和端口值应与您自己的端口匹配;该端口应当是非 SSL 端口。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 格式化 jdoe的令牌。该操作应该会成功。:
tpsclient < token_format.txt
# tpsclient < token_format.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注册 jdoe的令牌。该操作应该会成功:
tpsclient < token_enroll.txt
# tpsclient < token_enroll.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow
测试后恢复更改
验证后删除添加的测试令牌:
-
登录到位于
https://rhcs10.example.com:25443/tps/ui/的 TPS WebUI - 单击 Tokens,然后选中令牌 in 复选框。
- 单击 Remove,然后确认。
-
登录到位于
或者,您可以使用 CLI 命令删除测试令牌。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db/ -n "PKI Bootstrap Administrator for RSA-TPS" -c SECret.123 -p 25443 tps-token-del 40906145C76224192D2B
# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db/ -n "PKI Bootstrap Administrator for RSA-TPS" -c SECret.123 -p 25443 tps-token-del 40906145C76224192D2B ------------------------------------ Deleted token "40906145C76224192D2B" ------------------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
op.enroll.userKey.keyGen.keyType.num恢复到 2:停止 TPS:
pki-server stop rhcs10-RSA-TPS
# pki-server stop rhcs10-RSA-TPSCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
/var/lib/pki/rhcs10-RSA-TPS/tps/conf/CS.cfg配置文件,并将op.enroll.userKey.keyGen.keyType.num参数从 1 改为 2。例如:op.enroll.userKey.keyGen.keyType.num=2
op.enroll.userKey.keyGen.keyType.num=2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 TPS:
pki-server start rhcs10-RSA-TPS
# pki-server start rhcs10-RSA-TPSCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.11.5. 为 TPS 配置 OAEP 支持 复制链接链接已复制到粘贴板!
将 TPS 配置为使用 OAEP (Optimal Asymmetric Encryption Padding)密钥传输协议通过编辑 TPS 的 CS.cfg 配置文件来完成。
本节适用于支持 AES 密钥 wrapping/unwrapping 的 HSM,如带有固件 v12.72.1 的 Entrust nShield Connect XC 单元。
前提条件
- 以 root 用户身份登录 rhcs10.example.com。
流程
停止 TPS:
pki-server stop rhcs10-RSA-TPS
# pki-server stop rhcs10-RSA-TPSCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
编辑
/var/lib/pki/rhcs10-RSA-TPS/tps/conf/CS.cfg配置文件并添加以下行:
keyWrap.useOAEP=true
启动 TPS:
pki-server start rhcs10-RSA-TPS
# pki-server start rhcs10-RSA-TPSCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.11.6. 为 TMS Server-Side-Keygen 配置 AES 支持 复制链接链接已复制到粘贴板!
这个 Red Hat Certificate System 版本(特别是 Token Management System 和 JAVA applet)已被改进,以支持最新的 HSM 以用于全局平台安全频道协议 3 (SCP03)智能卡令牌。这是因为添加了 AES Key Wrap With Padding (KWP)模式来处理密钥注入,这在 TMS Server-Side-Keygen 功能中主要使用。
您可以在以下位置找到新的 JAVA 小程序:/usr/share/pki/tps/applets/1.5.64260792.ijc
TPS CS.cfg
要使用这个小程序,您必须配置 TPS CS.cfg 配置文件,如下所示:
注册:
op.enroll.<tps profile>.update.applet.requiredVersion.prot.3=1.5.64260792
op.enroll.<tps profile>.update.applet.requiredVersion.prot.3=1.5.64260792Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于格式:
op.format.<tps profile>.update.applet.requiredVersion.prot.3=1.5.64260792
op.format.<tps profile>.update.applet.requiredVersion.prot.3=1.5.64260792Copy to Clipboard Copied! Toggle word wrap Toggle overflow
请注意,您必须将任何其他配置集(包括外部注册)配置为使用此小程序。
例如:
TPS server.xml
KWP 实现需要花费一些时间将私钥解封到令牌上。因此,需要增加 server.xml 文件中的连接超时值。例如,在 /var/lib/pki/rhcs10-RSA-TPS/conf/server.xml 中为 Secure Connector 设置以下 connectionTimeout 值:
connectionTimeout="300000”
connectionTimeout="300000”
尝试的值的建议取决于要注入的私钥的大小。最好是值两次,以确保支持各种密钥大小。
如果成功注册比等待时间更重要,您可以通过将 "-1" 分配给 connectionTimeout 来绕过超时:
connectionTimeout="-1”
connectionTimeout="-1”
TKS CS.cfg
tks.defKeySet.prot3.devKeyType=AES tks.defKeySet.prot3.divers=gpkmc tks.defKeySet.prot3.diversVer1Keys=none tks.defKeySet.prot3.masterKeyType=AES
tks.defKeySet.prot3.devKeyType=AES
tks.defKeySet.prot3.divers=gpkmc
tks.defKeySet.prot3.diversVer1Keys=none
tks.defKeySet.prot3.masterKeyType=AES
7.11.7. 设置密钥大小 复制链接链接已复制到粘贴板!
将所有 keysize 设置为大于或等于 2048 非常重要。例如:
op.enroll.userKey.keyGen.encryption.keySize=2048 op.enroll.userKey.keyGen.signing.keySize=2048
op.enroll.userKey.keyGen.encryption.keySize=2048
op.enroll.userKey.keyGen.signing.keySize=2048
7.11.8. 设置 TPS phoneHome 复制链接链接已复制到粘贴板!
编辑
phoneHome.xml配置文件。例如:vi /var/lib/pki/rhcs10-RSA-TPS/tps/conf/phoneHome.xml
# vi /var/lib/pki/rhcs10-RSA-TPS/tps/conf/phoneHome.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为 TPS 设置正确的 http 端口。例如:
<Operation>http://rhcs10.example.com:25080/tps/tps</Operation>
<Operation>http://rhcs10.example.com:25080/tps/tps</Operation>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 它现在类似如下:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存并重启 TPS。
7.11.9. 创建 TPS 角色用户 复制链接链接已复制到粘贴板!
- 按照 第 7.12 节 “创建 PKI 角色用户” 中的步骤,在 TPS 中创建单角色管理员 agent,在 TPS 中创建审计用户。
7.11.10. 安装后 复制链接链接已复制到粘贴板!
如果要安装其他 RHCS 实例,请继续下一小节。完成所有需要的 RHCS 实例安装后,请访问 第 7.13 节 “安装后” 以完成额外的设置。