7.10. 创建并配置 TKS 实例
本节描述了针对 SubCA 安装和配置 TKS 实例。
TKS 系统证书将由 SubCA 发布,TKS 将加入 SubCA 安全域。
在本例中,TKS 安装在 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.10.1. 替换临时 DS 证书(TKS) 复制链接链接已复制到粘贴板!
在安装 TKS 之前,我们为 TKS 的目录服务器发布官方 SSL 服务器证书来替换临时引导。为此,我们首先要为目录服务器证书创建一个证书签名请求(CSR),然后将此请求提交到 CA。
确保您使用 DS 服务器的 FQDN,如 cn=rhds11.example.com
/ host=rhds11.example.com
。
为真实 DS 证书生成 CSR
在 rhds11.example.com 上,为真实 DS 证书生成 PKCS10 证书签名请求:
停止 DS :
dsctl slapd-CC-RSA-TKS-LDAP stop
# dsctl slapd-CC-RSA-TKS-LDAP stop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
certutil
工具生成 CSR:certutil -R -d /etc/dirsrv/slapd-CC-RSA-TKS-LDAP -s "CN=rhds11.example.com" -g 2048 -f /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/pwdfile.txt -a -o /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/Server-Cert-tks.csr -z /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/noise.txt
# certutil -R -d /etc/dirsrv/slapd-CC-RSA-TKS-LDAP -s "CN=rhds11.example.com" -g 2048 -f /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/pwdfile.txt -a -o /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/Server-Cert-tks.csr -z /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/noise.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要编辑上面获取的
Server-Cert-tks.csr
输出文件,以在"Begin Certificate Request"之前删除几行。例如:
vi /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/Server-Cert-tks.csr
# vi /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/Server-Cert-tks.csr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CSR 文件必须以"-----BEGIN CERTIFICATE REQUEST-----"行开头,并以"-----END CERTIFICATE REQUEST-----"行结尾。
远程将
Server-Cert-tks.csr
文件复制到 CA 所在的系统中。例如:scp /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/Server-Cert-tks.csr root@rhcs10.example.com:/root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tks.csr
# scp /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/Server-Cert-tks.csr root@rhcs10.example.com:/root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tks.csr
Copy 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-tks_pkcs10.cfg
# vim /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-tks_pkcs10.cfg
Copy 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-tks.cfg
# vim /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_dirsrv-tks.cfg
Copy 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-Cert
DS 证书保存到 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-tks.pem
# vi /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tks.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
Server-Cert-tks.pem
是 Directory Server 实例的新Server-Cert
证书,充当 TKS 的 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" -a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
远程将新的
Server-Cert
证书复制到 rhds11.example.com。例如:scp /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tks.pem root@rhds11.example.com:/etc/dirsrv/slapd-CC-RSA-TKS-LDAP/
# scp /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-tks.pem root@rhds11.example.com:/etc/dirsrv/slapd-CC-RSA-TKS-LDAP/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
替换临时 DS 证书
在 rhds11.example.com 上,将临时 DS 证书替换为实际的 DS 证书:
将
dirsrv
目录的内容保存到备份目录中:cp -r /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/ /etc/dirsrv/save-rsa/slapd-CC-RSA-TKS-LDAP/
# cp -r /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/ /etc/dirsrv/save-rsa/slapd-CC-RSA-TKS-LDAP/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除旧的 DS 证书:
certutil -D -d /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/pwdfile.txt -n "Server-Cert"
# certutil -D -d /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/pwdfile.txt -n "Server-Cert"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -D -d /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/pwdfile.txt -n "Self-Signed-CA"
# certutil -D -d /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TKS-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-TKS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TKS-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-TKS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-RootCA" -i /opt/pki_rsa/rootCA.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -d /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TKS-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-TKS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/pwdfile.txt -A -t "CT,C,C" -n "CA Signing Cert - rhcs10-RSA-SubCA" -i /opt/pki_rsa/subCA.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -d /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/pwdfile.txt -A -t "u,u,u" -n "Server-Cert" -i /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/Server-Cert-tks.pem
# certutil -d /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/pwdfile.txt -A -t "u,u,u" -n "Server-Cert" -i /etc/dirsrv/slapd-CC-RSA-TKS-LDAP/Server-Cert-tks.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出证书:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 DS :
dsctl slapd-CC-RSA-TKS-LDAP start
# dsctl slapd-CC-RSA-TKS-LDAP start
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 测试以确认 LDAP 服务器已启动并在运行(如果是单独的系统,则在 CA 主机上进行测试):
ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:16636 -b "dc=example,dc=com" -w SECret.123
# ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:16636 -b "dc=example,dc=com" -w SECret.123
Copy 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:16636 -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:16636 -b "dc=example,dc=com" -w SECret.123
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.10.2. 安装 TKS 实例 复制链接链接已复制到粘贴板!
要安装 TKS , 请使用单步方法或两步方法。以下流程描述了单步方法。如果要使用两步方法进行安装,请参阅 ] 和 xref:_rootca_two_step[。
BEFORE 安装 TKS,如果您打算将 AIA 扩展指向外部 OCSP 实例,而不是 CA 的内部 OCSP,请确保首先按照 第 7.7.4 节 “设置默认 AIA 扩展以指向此 OCSP” 中的步骤操作。
先决条件
- 以 root 用户身份登录 rhcs10.example.com。
- 您在我们的示例中有 第 7.1.2.6 节 “为 TKS 安装 DS 实例”,CC-RSA-TKS-LDAP 是 TKS 的内部数据库。
流程
在所选位置(如
/root/pki_rsa
)创建一个 TKS 安装文件:cd /root/pki_rsa
# cd /root/pki_rsa
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vi tks_inst.cfg
# vi tks_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
工具来安装 TKS 子系统:pkispawn -s TKS -f tks_inst.cfg --debug
# pkispawn -s TKS -f tks_inst.cfg --debug
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这将在
/var/lib/pki/rhcs10-RSA-TKS
中创建 TKS 实例。
为便于参考,如果您想要使用两步方法安装 TKS:
首先使用
--skip-configuration
选项运行pkispawn
工具来安装 RHCS TKS 实例:pkispawn -s TKS -f tks_inst.cfg --skip-configuration --debug
# pkispawn -s TKS -f tks_inst.cfg --skip-configuration --debug
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在两个安装步骤间自定义配置文件
运行
pkispawn
工具来配置 KRA:pkispawn -s TKS -f tks_inst.cfg --skip-installation --debug
# pkispawn -s TKS -f tks_inst.cfg --skip-installation --debug
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
显示已安装的 TKS 实例的状态:
pki-server status rhcs10-RSA-TKS
# pki-server status rhcs10-RSA-TKS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意安全代理、Admin 和 pkiconsole URL。
7.10.3. 为 TKS 配置 OAEP 支持 复制链接链接已复制到粘贴板!
将 TKS 配置为使用 OAEP (Optimal Asymmetric Encryption Padding)密钥传输协议通过编辑 TKS 的 CS.cfg
配置文件来完成。
本节适用于支持 AES 密钥 wrapping/unwrapping 的 HSM,如带有固件 v12.72.1 的 Entrust nShield Connect XC 单元。
前提条件
- 以 root 用户身份登录 rhcs10.example.com。
流程
停止 TKS:
pki-server stop rhcs10-RSA-TKS
# pki-server stop rhcs10-RSA-TKS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
编辑
/var/lib/pki/rhcs10-RSA-TKS/tks/conf/CS.cfg
配置文件并添加以下行:
keyWrap.useOAEP=true
启动 TKS:
pki-server start rhcs10-RSA-TKS
# pki-server start rhcs10-RSA-TKS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.10.4. 创建 TKS 角色用户 复制链接链接已复制到粘贴板!
- 按照 第 7.12 节 “创建 PKI 角色用户” 中的步骤,在 TKS 中创建单角色 admin、代理审核用户。
7.10.5. 安装后 复制链接链接已复制到粘贴板!
如果要安装其他 RHCS 实例,请继续下一小节。完成所有需要的 RHCS 实例安装后,请访问 第 7.13 节 “安装后” 以完成额外的设置。