7.7. 创建并配置 OCSP 实例(SubCA)
本节论述了针对 SubCA 安装和配置 OCSP 实例。
OCSP 系统证书将由 SubCA 发布,OCSP 将加入 SubCA 安全域。
在本例中,subCA 的 OCSP 安装在 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
7.7.1. 替换临时 DS 证书(OCSP-subca) 复制链接链接已复制到粘贴板!
在为 SubCA 安装 OCSP 之前,我们为 OCSP 的目录服务器发出官方 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-OCSP-subca-LDAP stop注意如果您不了解 DS 实例的名称,请使用:
dsctl -l列出所有实例使用
certutil工具生成 CSR:# certutil -R -d /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP -s "CN=rhds11.example.com" -g 2048 -f /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/pwdfile.txt -a -o /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/Server-Cert-ocsp-subca.csr -z /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/noise.txt重要编辑上面获取的
Server-Cert-ocsp-subca.csr输出文件,以在"Begin Certificate Request"之前删除几行。例如:
# vi /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/Server-Cert-ocsp-subca.csrCSR 文件必须以"-----BEGIN CERTIFICATE REQUEST-----"行开头,并以"-----END CERTIFICATE REQUEST-----"行结尾。
远程将
Server-Cert-ocsp-subca.csr文件复制到 CA 所在的系统中。例如:# scp /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/Server-Cert-ocsp-subca.csr root@rhcs10.example.com:/root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-ocsp-subca.csr
发出真实 DS 证书
在 rhcs10.example.com 上,发布实际的 SSL 服务器证书:
生成 CMC 请求:
创建
CMCRequest配置文件。例如:# vim /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-ocsp-subca_pkcs10.cfg### numRequests: Total number of PKCS10 requests or CRMF requests. numRequests=1 ### input: full path for the PKCS10 request or CRMF request, ### The content must be in Base-64 encoded format. ### Multiple files are supported. They must be separated by a space. ### For input on a different host, specify where to find the CSR. input=/root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-ocsp-subca.csr ### output: full path for the CMC request in binary format ### For output on a different host, specify the destination. output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-ocsp-subca_pkcs10.req ### tokenname: name of the token where the agent signing cert can be found (default is internal) tokenname=internal ### nickname: nickname for the agent certificate that will be used to sign the CMC full request. nickname=PKI Bootstrap Administrator for RSA-SubCA ### dbdir: directory for cert8.db, key3.db and secmod.db dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db ### password: password for cert8.db that stores the agent certificate password=SECret.123 ### format: request format, either pkcs10 or crmf format=pkcs10使用
CMCRequest命令生成请求:# CMCRequest /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-ocsp-subca_pkcs10.cfg cert/key prefix = path = /root/.dogtag/pki_rsa_bootstrap/certs_db CryptoManger initialized token internal logged in... got signerCert: PKI Bootstrap Administrator for RSA-SubCA createPKIData: begins k=0 createPKIData: format: pkcs10 useSharedSecret is false... signData: begins: getPrivateKey: got signing cert signData: got signer privKey createSignedData: begins getSigningAlgFromPrivate: begins. getSigningAlgFromPrivate: found signingKeyType=RSA getSigningAlgFromPrivate: using SignatureAlgorithm: RSASignatureWithSHA256Digest createSignedData: digest created for pkidata createSignedData: digest algorithm =RSASignatureWithSHA256Digest createSignedData: building cert chain signData: signed request generated. getCMCBlob: begins getCMCBlob: generating signed data The CMC enrollment request in base-64 encoded format: . . . Output omitted . . . The CMC enrollment request in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-ocsp-subca_pkcs10.req
提交 CMC 请求:
创建
HttpClient配置文件。例如:# vim /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_dirsrv-ocsp-subca.cfg### host: host name for the http server host=rhcs10.example.com ### port: port number port=31443 ### secure: true for secure connection, false for nonsecure connection secure=true ### input: full path for the enrollment request, the content must be in binary format input=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-ocsp-subca_pkcs10.req ### output: full path for the response in binary format output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-ocsp-subca_pkcs10.resp ### tokenname: name of the token where the SSL client authentication cert can be found (default is internal) ### This parameter will be ignored if secure=false tokenname=internal ### dbdir: directory for cert8.db, key3.db and secmod.db ### This parameter will be ignored if secure=false dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db ### clientmode: true for client authentication, false for no client authentication ### This parameter will be ignored if secure=false clientmode=true ### password: password for cert8.db ### This parameter will be ignored if secure=false and clientauth=false password=SECret.123 ### nickname: nickname for client certificate ### This parameter will be ignored if clientmode=false nickname=PKI Bootstrap Administrator for RSA-SubCA ### servlet: servlet name servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caCMCserverCert使用
HttpClient命令提交请求:# HttpClient /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_dirsrv-ocsp-subca.cfg Total number of bytes read = 3096 after SSLSocket created, thread token is NSS FIPS 140-2 User Private Key client cert is not null handshake happened writing to socket ##Response Headers begin## HTTP/1.1 200 Content-Type: application/pkcs7-mime Content-Length: 2492 Date: Tue, 29 Sep 2020 15:20:21 GMT Connection: close ##end## . . . Output omitted . . . The response in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-ocsp-subca_pkcs10.resp
处理 CMC 响应:
使用
CMCResponse处理响应,以 PEM 格式单独以链的形式显示所有证书:重要使用 "-v" 选项运行 CMCResponse 将链中每个证书的 PEM 返回为 Cert:0, Cert:1 等。在所有 PEM 下,输出也会以用户打印格式显示链中的每个证书。由于证书没有以固定顺序显示,因此为了确定其在链中的位置,您必须检查每个 "Certificate" 下的"Subject: "。对应的 PEM 显示在上面的同一位置。
# CMCResponse -d /root/.dogtag/pki_rsa_bootstrap/certs_db -i /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.dirsrv-ocsp-subca_pkcs10.resp -v Cert:0 … === Cert:1 … === Cert:2 … === Certificates: Certificate: Data: Version: v3 Serial Number: 0xF4837FD Signature Algorithm: SHA256withRSA - 1.2.840.113549.1.1.11 Issuer: CN=CA Signing Certificate,OU=rhcs10-RSA-SubCA,O=Example-rhcs10-RSA-RootCA Validity: Not Before: Wednesday, September 13, 2023 10:29:00 AM EDT America/New_York Not After: Tuesday, September 2, 2025 10:29:00 AM EDT America/New_York Subject: CN=rhds11.example.com . . . Output omitted . . . Certificate: Data: Version: v3 Serial Number: 0xD0F4BEE Signature Algorithm: SHA256withRSA - 1.2.840.113549.1.1.11 Issuer: CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA Validity: Not Before: Friday, September 1, 2023 1:26:46 AM EDT America/New_York Not After: Tuesday, September 1, 2043 1:26:46 AM EDT America/New_York Subject: CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA . . . Output omitted . . . Certificate: Data: Version: v3 Serial Number: 0x485588D Signature Algorithm: SHA256withRSA - 1.2.840.113549.1.1.11 Issuer: CN=CA Signing Certificate,OU=rhcs10-RSA-RootCA,O=Example-rhcs10-RSA-RootCA Validity: Not Before: Tuesday, September 12, 2023 5:18:54 PM EDT America/New_York Not After: Friday, September 12, 2042 5:18:54 PM EDT America/New_York Subject: CN=CA Signing Certificate,OU=rhcs10-RSA-SubCA,O=Example-rhcs10-RSA-RootCA . . . Output omitted . . . Number of controls is 1 Control #0: CMCStatusInfoV2 OID: {1 3 6 1 5 5 7 7 25} BodyList: 1 Status: SUCCESS CMC Full Response.将新
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-ocsp-subca.pem其中
Server-Cert-ocsp-subca.pem是 Directory Server 实例的新的Server-Cert证书,充当 SubCA 的 OCSP 的 internaldb。注意RootCA 的签名证书应与以下命令的输出匹配:
# certutil -L -d /var/lib/pki/rhcs10-RSA-RootCA/alias/ -n "CA Signing Cert - rhcs10-RSA-RootCA" -a
远程将新的
Server-Cert证书复制到 rhds11.example.com。例如:# scp /root/.dogtag/pki_rsa_bootstrap/certs_db/Server-Cert-ocsp-subca.pem root@rhds11.example.com:/etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/
替换临时 DS 证书
在 rhds11.example.com 上,将临时 DS 证书替换为实际的 DS 证书:
将
dirsrv目录的内容保存到备份目录中:# cp -r /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/ /etc/dirsrv/save-rsa/slapd-CC-RSA-OCSP-subca-LDAP/删除旧的 DS 证书:
# certutil -D -d /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/pwdfile.txt -n "Server-Cert"# certutil -D -d /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/pwdfile.txt -n "Self-Signed-CA"逐个导入新创建的 DS 证书和 CA 证书。例如:
# certutil -d /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-OCSP-subca-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-OCSP-subca-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-OCSP-subca-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-OCSP-subca-LDAP/ -f /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/pwdfile.txt -A -t "u,u,u" -n "Server-Cert" -i /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/Server-Cert-ocsp-subca.pem列出证书:
# certutil -L -d /etc/dirsrv/slapd-CC-RSA-OCSP-subca-LDAP/ Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI CA Signing Cert - rhcs10-RSA-RootCA CT,C,C CA Signing Cert - rhcs10-RSA-SubCA CT,C,C Server-Cert u,u,u启动 DS :
# dsctl slapd-CC-RSA-OCSP-subca-LDAP start测试以确认 LDAP 服务器已启动并在运行(如果是单独的系统,则在 CA 主机上进行测试):
# ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:11636 -b "dc=example,dc=com" -w SECret.123如果在单独的系统上测试,请在
ldapsearch命令前面包含 CA 证书链,例如:# LDAPTLS_CACERT=/opt/pki_rsa/ca-chain.pem ldapsearch -x -D "cn=Directory Manager" -H ldaps://rhds11.example.com:11636 -b "dc=example,dc=com" -w SECret.123
7.7.2. 为 SubCA 安装 OCSP 实例 复制链接链接已复制到粘贴板!
要为 SubCA 安装 OCSP 实例,请使用单步方法或两步方法。以下流程描述了单步方法。如果要使用两步方法安装,请参阅 第 7.2.2 节 “安装方法(单步或两步)” 和 第 7.3.2 节 “安装 RootCA 实例(两步方法)”。
先决条件
- 以 root 用户身份登录 rhcs10.example.com。
- 在我们的示例中,有 CC-RSA-OCSP-subca-LDAP 是 SubCA OCSP 的内部数据库。
流程
在所选位置(如
/root/pki_rsa)创建一个 OCSP 安装文件来生成证书请求:# cd /root/pki_rsa# vi ocsp_subca_inst.cfg注意除非明确指定,否则系统证书别名将自动命名为
pki_instance_name的值。为了避免共享 HSM 上的证书别名冲突,请为每个实例创建使用不同的实例名称。
以下安装文件中指定的值是示例。除了更改 HSM 密码外,还要相应地编辑值,如 ports, directory, nicknames, domains…
[DEFAULT] pki_instance_name=rhcs10-RSA-OCSP-subca pki_https_port=32443 pki_http_port=32080 ### Crypto Token pki_hsm_enable=True pki_hsm_libfile=/opt/nfast/toolkits/pkcs11/libcknfast.so pki_hsm_modulename=nfast pki_token_name=NHSM-CONN-XC pki_token_password=<YourHSMpassword> pki_audit_signing_token=NHSM-CONN-XC pki_audit_signing_key_algorithm=SHA256withRSA pki_audit_signing_key_size=2048 pki_audit_signing_key_type=rsa pki_audit_signing_signing_algorithm=SHA256withRSA pki_subsystem_token=NHSM-CONN-XC pki_subsystem_key_algorithm=SHA256withRSA pki_subsystem_signing_algorithm=SHA256withRSA pki_subsystem_key_size=2048 pki_subsystem_key_type=rsa pki_sslserver_token=NHSM-CONN-XC pki_sslserver_key_algorithm=SHA256withRSA pki_sslserver_signing_algorithm=SHA256withRSA pki_sslserver_key_size=2048 pki_sslserver_key_type=rsa ### CA cert chain concatenated in PEM format pki_cert_chain_path=/opt/pki_rsa/ca-chain.pem ### Bootstrap Admin pki_admin_password=SECret.123 pki_admin_key_type=rsa pki_admin_key_size=2048 pki_admin_key_algorithm=SHA256withRSA ### Bootstrap Admin client dir pki_client_admin_cert_p12=/opt/pki_rsa/rhcs10-RSA-OCSP-subca/ocsp_admin_cert.p12 pki_client_database_dir=/opt/pki_rsa/rhcs10-RSA-OCSP-subca/certs_db pki_client_database_password=SECret.123 pki_client_database_purge=False pki_client_dir=/opt/pki_rsa/rhcs10-RSA-OCSP-subca pki_client_pkcs12_password=SECret.123 ### Internal LDAP pki_ds_bind_dn=cn=Directory Manager pki_ds_ldap_port=11389 pki_ds_ldaps_port=11636 pki_ds_password=SECret.123 pki_ds_remove_data=True pki_ds_secure_connection=True pki_ds_secure_connection_ca_pem_file=/opt/pki_rsa/ca-chain.pem pki_ds_secure_connection_ca_nickname=CA Signing Cert - rhcs10-RSA-SubCA ### Security Domain pki_security_domain_hostname=rhcs10.example.com pki_security_domain_https_port=31443 pki_security_domain_password=SECret.123 pki_security_domain_user=caadmin [Tomcat] pki_ajp_port=32009 pki_tomcat_server_port=32005 [OCSP] pki_import_admin_cert=False pki_ocsp_signing_token=NHSM-CONN-XC pki_ocsp_signing_key_algorithm=SHA256withRSA pki_ocsp_signing_key_size=3072 pki_ocsp_signing_key_type=rsa pki_ocsp_signing_signing_algorithm=SHA256withRSA pki_admin_nickname=PKI Bootstrap Administrator for RSA-OCSP-subca pki_admin_name=ocspadmin pki_admin_uid=ocspadmin pki_admin_email=ocspadmin@example.com pki_ds_hostname=rhds11.example.com pki_ds_base_dn=dc=RSA-OCSP-subca pki_ds_database=CC-RSA-OCSP-subca-LDAP pki_share_db=False运行
pkispawn工具来安装 OCSP 子系统:# pkispawn -s OCSP -f ocsp_subca_inst.cfg --debug这将在
/var/lib/pki/rhcs10-RSA-OCSP-subca中创建 OCSP 实例。
为便于参考,如果您想要使用两步方法安装此 OCSP:
首先使用
--skip-configuration选项运行pkispawn工具来安装 SubCA 的 OCSP 实例:# pkispawn -s OCSP -f ocsp_subca_inst.cfg --skip-configuration --debug- 在两个安装步骤间自定义配置文件
运行
pkispawn工具来配置 OCSP:# pkispawn -s OCSP -f ocsp_subca_inst.cfg --skip-installation --debug
验证
显示安装的 OCSP 实例的状态:
# pki-server status rhcs10-RSA-OCSP-subca
7.7.3. 增加 SubCA 的 OCSP pkiconsole 超时 复制链接链接已复制到粘贴板!
- 以 root 用户身份登录 rhcs10.example.com。
停止 SubCA 的 OCSP 服务:
pki-server stop rhcs10-RSA-OCSP-subca编辑
/var/lib/pki/rhcs10-RSA-OCSP-subca/conf/server.xml以增加超时时间:<Connector name="Secure" port="32443" … connectionTimeout="3000000"启动 SubCA 的 OCSP 服务:
# pki-server start rhcs10-RSA-OCSP-subca
7.7.4. 设置默认 AIA 扩展以指向此 OCSP 复制链接链接已复制到粘贴板!
默认情况下,除非明确指定,CA 使用 AIA (Authority Information Access)扩展来发布证书,指向 CA 自己的内部 OCSP。现在,您已设置了 OCSP 实例,您可以将 SubCA 配置为开始使用指向 OCSP 实例的 AIA 扩展来发布证书。
以 root 用户身份在 rhcs10.example.com 上:
停止 SubCA:
# pki-server stop rhcs10-RSA-SubCA编辑 SubCA 的
CS.cfg,并将ca.defaultOcspUri变量设置为指向 OCSP。例如:ca.defaultOcspUri=http://rhcs10.example.com:32080/ocsp/ee/ocsp启动 SubCA:
# pki-server start rhcs10-RSA-SubCA
默认情况下,每个子系统的 OCSP URL (如 KRA)会在其 server.xml 文件中设置。启用后,这会在查找证书状态时指示 RHCS 实例使用静态 URL,而不是嵌入在对等证书中的 AIA 扩展。要使用 AIA 扩展,安装子系统时将定向到遵循 第 7.13.10.2 节 “为 CA / KRA / TKS / TPS 启用 OCSP”。
7.7.5. 创建 OCSP 角色用户 复制链接链接已复制到粘贴板!
按照 第 7.12 节 “创建 PKI 角色用户” 中的步骤创建单角色 admin、代理、审计用户(在 OCSP 中)。为此,您需要导入 SubCA 的 OCSP bootstrap 管理员证书,即
ocsp_admin_cert.p12。例如:# pki -d /root/.dogtag/pki_rsa_bootstrap/certs_db -c SECret.123 client-cert-import --pkcs12 /opt/pki_rsa/rhcs10-RSA-OCSP-subca/ocsp_admin_cert.p12 --pkcs12-password SECret.123 ---------------------------------------- Imported certificates from PKCS #12 file ----------------------------------------
7.7.6. 使用客户端身份验证登录到 OCSP pkiconsole 复制链接链接已复制到粘贴板!
-
使用
authType=sslclientauth配置 OCSP,并按照使用客户端身份验证的 Configure pkiconsole 登录导入角色用户证书。 使用角色用户的客户端身份验证证书登录到
pkiconsole:# pkiconsole -d <home .redhat-idm-console dir> -n <client cert> https://rhcs10.example.com:32443/ocsp然后从列表中选择角色用户证书别名,如 OCSP adminV。登录到控制台应该可以成功。
7.7.7. 配置 CRL 发布 复制链接链接已复制到粘贴板!
Red Hat Certificate System 提供两种 CRL 发布方法,供 CA 外部的 OCSP 实例使用:
- 直接 CA→OCSP CRL 发布
- 使用 CA→LDAP 间接发布,然后 OCSP5-4LDAP
默认情况下,当您设置 OCSP 实例后,会自动设置第一个 CRL 发布方法,这将允许直接 CA→OCSP CRL 发布。
本节详细介绍了第二种方法,即使 CA 将 CRL 发布到 LDAP 服务器,然后 OCSP 可以从 LDAP 服务器拉取 CRL。
7.7.7.1. 为 CRL 发布设置 LDAP 服务器 复制链接链接已复制到粘贴板!
以 root 用户身份在 rhds11.example.com 上:
安装 Directory 服务器实例,CA 将使用它来发布 CRL。红帽目录服务器分别侦听 LDAP/LDAPS 端口、5389 和 5636。
使用
dscreate create-template命令在所选位置创建一个模板.cfg文件(例如/root/pki_rsa):# dscreate create-template /root/pki_rsa/subca-crl-publish-ldap.cfg编辑上一步中创建的
.cfg文件。取消注释以下参数并把它设置为自定义安装:full_machine_name = rhds11.example.com port = 5389 secure_port = 5636 instance_name = CC-RSA-SubCA-CRL-PUBLISH root_password = SECret.123 suffix = dc=example,dc=com create_suffix_entry = True安装 Directory 服务器实例:
# dscreate from-file /root/pki_rsa/subca-crl-publish-ldap.cfg Starting installation... Completed installation for CC-RSA-SubCA-CRL-PUBLISH
添加 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";)运行
ldapmodify命令来添加 ACI:# ldapmodify -x -h rhds11.example.com -p 5389 -D 'cn=Directory Manager' -W -f /root/pki_rsa/dirsrv/ldapaci.ldif
准备 CRL 发布子树:
在
/root/pki_rsa/dirsrv目录中创建两个文件,其内容如下:对于
subca_pki_subtree.ldif文件:dn: dc=pki,dc=example,dc=com objectClass: domain dc: pki对于
subca_crl_subtree.ldif文件:dn: dc=crl,dc=pki,dc=example,dc=com objectClass: domain dc: crl
在 CRL 实例中添加这两个条目:
# ldapadd -x -H ldap://rhds11.example.com:5389 -D "cn=Directory Manager" -W -f /root/pki_rsa/dirsrv/subca_pki_subtree.ldif# ldapadd -x -H ldap://rhds11.example.com:5389 -D "cn=Directory Manager" -W -f /root/pki_rsa/dirsrv/subca_crl_subtree.ldif
7.7.7.2. 在 SubCA 上配置 CRL 发布 复制链接链接已复制到粘贴板!
配置 CRL 发布:
添加
ca.publish.属性:停止 SubCA 实例:
# pki-server stop rhcs10-RSA-SubCA在 SubCA 的
CS.cfg配置文件中配置以下属性(例如/var/lib/pki/rhcs10-RSA-SubCA/ca/conf/CS.cfg):ca.publish.ldappublish.enable=true ca.publish.ldappublish.ldap.ldapauth.authtype=BasicAuth ca.publish.ldappublish.ldap.ldapauth.bindDN=cn=Directory Manager ca.publish.ldappublish.ldap.ldapauth.bindPWPrompt=CA LDAP Publishing ca.publish.ldappublish.ldap.ldapconn.host=rhds11.example.com ca.publish.ldappublish.ldap.ldapconn.port=5389 ca.publish.ldappublish.ldap.ldapconn.secureConn=false ca.publish.publisher.instance.LdapCaCertPublisher.caCertAttr=cACertificate;binary ca.publish.publisher.instance.LdapCaCertPublisher.caObjectClass=pkiCA ca.publish.publisher.instance.LdapCaCertPublisher.pluginName=LdapCaCertPublisher ca.publish.mapper.instance.LdapCaCertMap.createCAEntry=true ca.publish.mapper.instance.LdapCaCertMap.dnPattern=cn=$subj.cn,dc=crl,dc=pki,dc=example,dc=com ca.publish.mapper.instance.LdapCaCertMap.pluginName=LdapCaSimpleMap ca.publish.rule.instance.LdapCaCertRule.enable=true ca.publish.rule.instance.LdapCaCertRule.mapper=LdapCaCertMap ca.publish.rule.instance.LdapCaCertRule.pluginName=Rule ca.publish.rule.instance.LdapCaCertRule.predicate= ca.publish.rule.instance.LdapCaCertRule.publisher=LdapCaCertPublisher ca.publish.rule.instance.LdapCaCertRule.type=cacert ca.publish.publisher.instance.LdapCrlPublisher.crlAttr=certificateRevocationList;binary ca.publish.publisher.instance.LdapCrlPublisher.crlObjectClass=pkiCA ca.publish.publisher.instance.LdapCrlPublisher.pluginName=LdapCrlPublisher ca.publish.mapper.instance.LdapCrlMap.createCAEntry=true ca.publish.mapper.instance.LdapCrlMap.dnPattern=cn=$subj.cn,dc=crl,dc=pki,dc=example,dc=com ca.publish.mapper.instance.LdapCrlMap.pluginName=LdapCaSimpleMap ca.publish.rule.instance.LdapCrlRule.enable=true ca.publish.rule.instance.LdapCrlRule.mapper=LdapCrlMap ca.publish.rule.instance.LdapCrlRule.pluginName=Rule ca.publish.rule.instance.LdapCrlRule.predicate=issuingPointId==MasterCRL ca.publish.rule.instance.LdapCrlRule.publisher=LdapCrlPublisher ca.publish.rule.instance.LdapCrlRule.type=crl ca.publish.enable=true注意或者,您可以使用
ca-config-set命令更新属性。例如:# pki-server ca-config-set -i rhcs10-RSA-SubCA ca.publish.ldappublish.ldap.ldapconn.host rhds11.example.com; pki-server ca-config-set -i rhcs10-RSA-SubCA ca.publish.ldappublish.ldap.ldapconn.port 5389; pki-server ca-config-set -i rhcs10-RSA-SubCA ca.publish.mapper.instance.LdapCaCertMap.dnPattern "cn=\$subj.cn,dc=crl,dc=pki,dc=example,dc=com"; pki-server ca-config-set -i rhcs10-RSA-SubCA ca.publish.mapper.instance.LdapCrlMap.dnPattern cn=\$subj.cn,dc=crl,dc=pki,dc=example,dc=com以此类推。
您可以使用
ca-config-show命令检查参数是否已成功更新。例如:# pki-server ca-config-show -i rhcs10-RSA-SubCA ca.publish.ldappublish.ldap.ldapconn.host rhds11.example.com; pki-server ca-config-show -i rhcs10-RSA-SubCA ca.publish.ldappublish.ldap.ldapconn.port 5389; pki-server ca-config-show -i rhcs10-RSA-SubCA ca.publish.mapper.instance.LdapCaCertMap.dnPattern "cn=\$subj.cn,dc=crl,dc=pki,dc=example,dc=com"; pki-server ca-config-show -i rhcs10-RSA-SubCA ca.publish.mapper.instance.LdapCrlMap.dnPattern cn=\$subj.cn,dc=crl,dc=pki,dc=example,dc=com启动 SubCA 实例:
pki-server start rhcs10-RSA-SubCA
通过
curl将 CRL 和 CA 证书推送到 LDAP 目录。例如:# curl \ -d "xml=true" \ --cert-type P12 \ --cert /opt/pki_rsa/rhcs10-RSA-SubCA/ca_admin_cert.p12:SECret.123 \ -k \ https://rhcs10.example.com:31443/ca/agent/ca/updateCRL \ | xmllint --format - <?xml version="1.0" encoding="UTF-8" standalone="no"?> <xml> <header> <crlIssuingPoint>MasterCRL</crlIssuingPoint> <crlUpdate>Scheduled</crlUpdate> </header> <fixed/> <records/> </xml>禁用直接 CA→OCSP CRL 发布方法:
停止 SubCA:
# pki-server stop rhcs10-RSA-SubCA编辑 CA 的
CS.cfg配置文件(例如/var/lib/pki/rhcs10-RSA-SubCA/ca/conf/CS.cfg),并将其设置为false:ca.publish.rule.instance.ocsprule-<host/port info>.enable=false例如:
ca.publish.rule.instance.ocsprule-rhcs10-example-com-32443.enable=false启动 CA 以使更改生效:
# pki-server start rhcs10-RSA-SubCA
使用
curl更新目录服务器。例如:# curl \ -d "updateCRL=yes&updateCA=yes&xml=true" \ --cert-type P12 --cert /opt/pki_rsa/rhcs10-RSA-SubCA/ca_admin_cert.p12:SECret.123 \ -k https://rhcs10.example.com:31443/ca/agent/ca/updateDir | xmllint --format -使用
curl显示 CRL:# curl \ -d "pageSize=50&crlIssuingPoint=MasterCRL&pageStart=1&crlDisplayType=entireCRL&xml=true" \ --cert-type P12 \ --cert /opt/pki_rsa/rhcs10-RSA-SubCA/ca_admin_cert.p12:SECret.123 \ -k \ https://rhcs10.example.com:31443/ca/agent/ca/displayCRL | xmllint --format -运行
ldapsearch来验证 CRL 和 CA 证书是否已推送到 LDAP 目录:# ldapsearch -x -D "cn=Directory Manager" -h "rhds11.example.com" -p 5389 -b "dc=example,dc=com" -w SECret.123. . . Output omitted . . . # CA Signing Certificate, crl.pki.example.com dn: cn=CA Signing Certificate,dc=crl,dc=pki,dc=example,dc=com cn: CA Signing Certificate sn: CA Signing Certificate objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: pkiCA cACertificate;binary:: MIICBzCB8AIBATANBgkqhkiG9w0BAQ0FADBdMRYwFAYDVQQKEw1FeGFtcGxlLVN1YkNBMSIwIAYDVQQLExlyaGNzOTMtVE1TLVN1YkNBLWFha2tpYW5nMR8wHQYDVQQDExZDQSBTaWduaW5nIENlcnRpZmljYXRlFw0xODAzMDkxODA . . . Output omitted . . . certificateRevocationList;binary:: IID9DCCAtygAwIBAgIEBwa6XDANBgkqhkiG9w0BAQsFADBiMR4wHAYDVQQKDBVFeGFtcGxlLXJoY3M5My1UTVMtQ0ExHzAdBgNVBAsMFnJoY3M5My1UTVMtQ . . . Output omitted . . .- 禁用 SubCA 的证书发布(可选):
以下流程是防止 debug 日志中出现 WARNING 信息,如下所示:
2024-01-29 00:04:10 [Thread-18] INFO: CAPublisherProcessor: No rules enabled
2024-01-29 00:04:10 [Thread-18] SEVERE: PublishProcessor::publishCert : Failed to publish using rule: No rules enabled
2024-01-29 00:04:10 [Thread-18] WARNING: Could not publish certificate serial number 0x9c2762c. Error Failed to publish using rule: No rules enabled
Failed to publish using rule: No rules enabled
停止 SubCA:
# pki-server stop rhcs10-RSA-SubCA编辑
/var/lib/pki/rhcs10-RSA-SubCA/ca/conf/CS.cfg并设置以下内容:ca.publish.cert.enable=false启动 SubCA 以使配置更改生效:
# pki-server start rhcs10-RSA-SubCA
7.7.7.3. 配置 OCSP 以从 LDAP 服务器拉取 CRL 复制链接链接已复制到粘贴板!
当您选择替代的 CRL 发布方法时,您需要设置 OCSP,以便它知道从哪里拉取 CRL。为此,您需要配置 OCSP Revocation Info 存储信息,使其事先指向 CRL 发布 LDAP 实例(已在本章前面设置)。
配置 OCSP 撤销信息存储:
停止 OCSP:
# pki-server stop rhcs10-RSA-OCSP-subca在 OCSP 的
CS.cfg配置文件中设置ldapStore属性(例如/var/lib/pki/rhcs10-RSA-OCSP-subca/ocsp/conf/CS.cfg)。确保将ocsp.storeId参数从defStore改为ldapStore并添加以下参数:ocsp.storeId=ldapStore ocsp.store.ldapStore.numConns=1 ocsp.store.ldapStore.host0=rhds11.example.com ocsp.store.ldapStore.port0=5389 ocsp.store.ldapStore.baseDN0=dc=crl,dc=pki,dc=example,dc=com ocsp.store.ldapStore.refreshInSec0=120 ocsp.store.ldapStore.byName=true ocsp.store.ldapStore.caCertAttr=cACertificate;binary ocsp.store.ldapStore.crlAttr=certificateRevocationList;binary ocsp.store.ldapStore.notFoundAsGood=true注意refreshInSec0的默认值为 86400,我们将其配置为 120 用于测试,因此每 2 分钟进行 CRL 更新。另外,为了更好地观察,您可以在 OCSP 的
CS.cfg配置文件中将 debug 级别设置为 0,以确保 LDAPStore 更新在 debug 日志中显示。否则,它仅在没有更新时才会显示状态。debug.level=0但是,请注意,这样做会快速增加调试日志的大小,特别是 OCSP 系统。因此,只在短的测试时间内推荐使用。
启动 OCSP 以使
ldapStore配置生效:# pki-server start rhcs10-RSA-OCSP-subca
7.7.7.4. 测试 CRL 发布 复制链接链接已复制到粘贴板!
在本节中,我们将通过创建两个用户证书来测试 CRL 发布,其中之一将被撤销。然后,我们将针对 OCSP 实例检查有效证书和撤销的证书,以验证响应是否如预期。
创建 CMC 证书
为 user1 和 user2 创建代理签名的 CMC 证书,CMC 请求由 bootstrap admin 证书签名。例如,对于 user1 :
列出数据库中的证书:
# certutil -d /root/.dogtag/pki_rsa_bootstrap/certs_db -L Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI PKI Bootstrap Administrator for RSA-SubCA u,u,u CA Signing Cert - rhcs10-RSA-SubCA CT,C,C . . . Output omitted . . .使用
PKCS10Client工具生成 PKCS10 证书请求:# PKCS10Client -d /root/.dogtag/pki_rsa_bootstrap/certs_db -p SECret.123 -n "cn=test user1, uid=user1" -o /root/.dogtag/pki_rsa_bootstrap/certs_db/user1.req PKCS10Client: Certificate request written into /root/.dogtag/pki_rsa_bootstrap/certs_db/user1.req PKCS10Client: PKCS#10 request key id written into /root/.dogtag/pki_rsa_bootstrap/certs_db/user1.req.keyId注意在
keyId文件上使用cat,以便下一步可用:# cat /root/.dogtag/pki_rsa_bootstrap/certs_db/user1.req.keyId; echo生成 CMC 请求:
使用您在上一步中获取的 PKCS#10 请求和私钥 ID 创建
CMCRequest配置文件。例如:# vi cmcRequest_p10_user1.cfg### numRequests: Total number of PKCS10 requests or CRMF requests. numRequests=1 ### input: full path for the PKCS10 request or CRMF request, ### The content must be in Base-64 encoded format. ### Multiple files are supported. They must be separated by a space. input=/root/.dogtag/pki_rsa_bootstrap/certs_db/user1.req ### output: full path for the CMC request in binary format output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.user1_pkcs10.req ### tokenname: name of the token where the agent signing cert can be found (default is internal) tokenname=internal ### nickname: nickname for the certificate that will be used to sign the CMC full request. ### nickname=caaadmin nickname=PKI Bootstrap Administrator for RSA-SubCA ### dbdir: directory for cert8.db, key3.db and secmod.db dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db ### password: password for cert8.db that stores the user signing certificate and keys password=SECret.123 ### format: request format, either pkcs10 or crmf format=pkcs10 ### identityProofV2.enable: if true, then the request will contain this control. Otherwise, false. ### Note that if both identityProof and identityProofV2 are enabled, ### identityProofV2 takes precedence; Only one of them can be active at a time ### Supported hashAlg are: ### SHA-256, SHA-384, and SHA-512 ### Supported macAlg are: ### SHA-256-HMAC, SHA-384-HMAC, and SHA-512-HMAC identityProofV2.enable=false identityProofV2.hashAlg=SHA-512 identityProofV2.macAlg=SHA-256-HMAC request.privKeyId=<output from PKCS10Client|CRMFPopClient xxx.priv>使用
CMCRequest命令生成请求:# CMCRequest cmcRequest_p10_user1.cfg cert/key prefix = path = /root/.dogtag/pki_rsa_bootstrap/certs_db CryptoManger initialized token internal logged in... got signerCert: PKI Bootstrap Administrator for RSA-SubCA createPKIData: begins k=0 createPKIData: format: pkcs10 PKCS10: PKCS10: begins PKCS10: PKCS10: ends selfSign is false... signData: begins: getPrivateKey: got signing cert signData: got signer privKey createSignedData: begins getSigningAlgFromPrivate: begins. getSigningAlgFromPrivate: found signingKeyType=RSA getSigningAlgFromPrivate: using SignatureAlgorithm: RSASignatureWithSHA256Digest createSignedData: digest created for pkidata createSignedData: digest algorithm =RSASignatureWithSHA256Digest createSignedData: building cert chain signData: signed request generated. getCMCBlob: begins getCMCBlob: generating signed data The CMC enrollment request in base-64 encoded format: . . . Output omitted . . . The CMC enrollment request in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.user1_pkcs10.req
提交 CMC 请求:
创建
HttpClient配置文件。例如:# vim /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_user1.cfg### host: host name for the http server host=rhcs10.example.com ### port: port number port=31443 ### secure: true for secure connection, false for nonsecure connection secure=true ### input: full path for the enrollment request, the content must be in binary format input=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.user1_pkcs10.req ### output: full path for the response in binary format output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.user1_pkcs10.resp ### tokenname: name of the token where the SSL client authentication cert can be found (default is internal) ### This parameter will be ignored if secure=false tokenname=internal ### dbdir: directory for cert8.db, key3.db and secmod.db ### This parameter will be ignored if secure=false dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db/ ### clientmode: true for client authentication, false for no client authentication ### This parameter will be ignored if secure=false clientmode=true ### password: password for cert8.db ### This parameter will be ignored if secure=false and clientauth=false password=SECret.123 ### nickname: nickname for client certificate ### This parameter will be ignored if clientmode=false nickname=PKI Bootstrap Administrator for RSA-SubCA ### servlet: servlet name servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caFullCMCUserCert使用
HttpClient命令提交请求:# HttpClient /root/.dogtag/pki_rsa_bootstrap/certs_db/HttpClient_cmc_p10_user1.cfg Total number of bytes read = 3453 after SSLSocket created, thread token is NSS FIPS 140-2 User Private Key client cert is not null handshake happened writing to socket Total number of bytes read = 2590 . . . Output omitted . . . The response in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.user1_pkcs10.resp
使用
CMCResponse命令处理响应:# CMCResponse -d /root/.dogtag/pki_rsa_bootstrap/certs_db -i /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.user1_pkcs10.resp . . . Output omitted . . . Number of controls is 1 Control #0: CMCStatusInfoV2 OID: {1 3 6 1 5 5 7 7 25} BodyList: 1 Status: SUCCESS-
同样,使用适当的值重复上述步骤,为
user2创建一个证书。
设置撤销
现在,设置撤销以撤销 user2 证书:
将 CRL 和 CA 证书推送到 LDAP 目录:
- 在浏览器中打开 SubCA 的 Agent UI。
- 选择 Update Revocation List,再点 Update。
点 Update Directory Server 并选择:
- 将证书撤销列表更新至目录
- 将证书管理器证书更新至目录
- 单击 Update Directory。
-
等待 OCSP 的
ldapStore刷新发生(观察/var/lib/pki/rhcs10-RSA-OCSP-subca/ocsp/logs/debug中的 debug 文件)。
使用
OCSPClient工具检查证书状态。例如,使用证书序列号user1(十进制):# OCSPClient -v -d /root/.dogtag/pki_rsa_bootstrap/certs_db -h rhcs10.example.com -p 32080 -c "CA Signing Cert - rhcs10-RSA-SubCA" --serial 245832201 Initializing security database Creating request for serial number 245832201 Submitting OCSP request URL: http://rhcs10.example.com:32080/ocsp/ee/ocsp Request Length: 71 Request: MEUwQzBBMD8wPTAJBgUrDgMCGgUABBRA+gjEGo4W0lUiC/Ve/oO8CrXQLQQUK4Bf o2u6SW0p6q58dlNCXxOVw30CBA7kEiA= Response Length: 3546 Response: <blob> CertID.serialNumber=245832201 CertStatus=Good撤销
user2的证书:创建
CMCRequest配置文件。例如:# vi cmc-agent-signed-revoke.cfg### numRequests: Total number of PKCS10 requests or CRMF requests. numRequests=1 ### output: full path for the CMC request in binary format output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.revoke.agentSigned.req ### tokenname: name of the token where the user signing cert can be found (default is internal) tokenname=internal ### nickname: nickname for the signing certificate which will be used to sign the CMC full request. nickname=PKI Bootstrap Administrator for RSA-SubCA ### dbdir: directory for cert8.db, key3.db and secmod.db dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db ### password: password for cert8.db which stores the user signing certificate and keys password=SECret.123 ### format: request format, either pkcs10 or crmf format=pkcs10 ### revocation parameters revRequest.enable=true revRequest.serial=245832201 revRequest.reason=unspecified revRequest.comment=test user2 certificate revocation使用
CMCRequest命令生成请求:# CMCRequest cmc-agent-signed-revoke.cfg cert/key prefix = path = /root/.dogtag/pki_rsa_bootstrap/certs_db CryptoManger initialized token internal logged in... got signerCert: PKI Bootstrap Administrator for RSA-SubCA addRevRequestAttr: no sharedSecret found; request will be signed; addRevRequestAttr: RevokeRequest control created. selfSign is false... signData: begins: getPrivateKey: got signing cert signData: got signer privKey createSignedData: begins getSigningAlgFromPrivate: begins. getSigningAlgFromPrivate: found signingKeyType=RSA getSigningAlgFromPrivate: using SignatureAlgorithm: RSASignatureWithSHA256Digest createSignedData: digest created for pkidata createSignedData: digest algorithm =RSASignatureWithSHA256Digest createSignedData: building cert chain signData: signed request generated. getCMCBlob: begins getCMCBlob: generating signed data The CMC enrollment request in base-64 encoded format: . . . Output omitted . . . The CMC enrollment request in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.revoke.agentSigned.req创建
HttpClient配置文件。例如:# vi HttpClient.revoke.agentSigned.cfg### CA server host name. host=rhcs10.example.com ### port: port number port=31443 ### secure: true for secure connection, false for nonsecure connection secure=true ### input: full path for the enrollment request, the content must be in binary format input=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.revoke.agentSigned.req ### output: full path for the response in binary format output=/root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.revoke.agentSigned.resp ### tokenname: name of the token where the SSL client authentication cert can be found (default is internal) ### This parameter will be ignored if secure=false tokenname=internal ### dbdir: directory for cert8.db, key3.db and secmod.db ### This parameter will be ignored if secure=false dbdir=/root/.dogtag/pki_rsa_bootstrap/certs_db ### clientmode: true for client authentication, false for no client authentication ### This parameter will be ignored if secure=false clientmode=true ### password: password for cert8.db ### This parameter will be ignored if secure=false and clientauth=false password=SECret.123 ### nickname: nickname for client certificate ### This parameter will be ignored if clientmode=false nickname=PKI Bootstrap Administrator for RSA-SubCA ### servlet: servlet name servlet=/ca/ee/ca/profileSubmitCMCFull?profileId=caFullCMCUserCert使用
HttpClient命令提交请求:# HttpClient HttpClient.revoke.agentSigned.cfg Total number of bytes read = 2793 after SSLSocket created, thread token is NSS FIPS 140-2 User Private Key client cert is not null handshake happened writing to socket Total number of bytes read = 1638 . . . Output omitted . . . The response in binary format is stored in /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.revoke.agentSigned.resp处理 CMC 响应:
# CMCResponse -d /root/.dogtag/pki_rsa_bootstrap/certs_db -i /root/.dogtag/pki_rsa_bootstrap/certs_db/cmc.revoke.agentSigned.resp . . . Output omitted . . . Number of controls is 1 Control #0: CMCStatusInfoV2 OID: {1 3 6 1 5 5 7 7 25} BodyList: 1 Status: SUCCESS
验证
-
在 CA 签名的审计日志中验证,例如
/var/log/pki/rhcs10-RSA-SubCA/ca/signedAudit/ca_audit,代表user2证书被撤销。 等待下一个 CRL autoupdate (以分钟为单位)由 SubCA 的
CS.cfg文件的ca.crl.MasterCRL.autoUpdateInterval配置。默认情况下,这设置为 240 分钟。)注意或者,如果要立即手动更新 CRL,请在浏览器中打开 SubCA 的 Agent UI,并:
- 选择 Update Revocation List,再点 Update。
点 Update Directory Server 并选择:
- 将证书撤销列表更新至目录
-
将证书管理器证书更新至目录
- 单击 Update Directory。
ldapStore刷新完成后,观察/var/lib/pki/rhcs10-RSA-OCSP-subca/ocsp/logs/debug中的 debug 文件。使用
OCSPCLient工具验证user2的证书已撤销,使用十进制十进制表示的序列号(使用 指向签名 CA 别名的 nickname):# OCSPClient -v -d /root/.dogtag/pki_rsa_bootstrap/certs_db -h rhcs10.example.com -p 32080 -c "CA Signing Cert - rhcs10-RSA-SubCA" --serial 245832201 Initializing security database Creating request for serial number 245832201 Submitting OCSP request URL: http://rhcs10.example.com:32080/ocsp/ee/ocsp Request Length: 71 Request: MEUwQzBBMD8wPTAJBgUrDgMCGgUABBRA+gjEGo4W0lUiC/Ve/oO8CrXQLQQUK4Bf o2u6SW0p6q58dlNCXxOVw30CBA7kEiA= Response Length: 3563 Response: <blob> CertID.serialNumber=245832201 CertStatus=Revoked
将 ocsp.store.ldapStore.refreshInSec0 设置为所需的值
在以前的版本中,我们设置 ocsp.store.ldapStore.refreshInSec0=120 以便更快地进行 CRL 刷新(2 分钟)用于测试。
-
请将 OCSP 的
CS.cfg中的值更改为您所需的值(以秒为单位),将 debug 级别更新为 10 并重启 OCSP。