13.2. CS.cfg 文件
证书系统子系统的运行时属性由一组配置参数进行管理。这些参数存储在服务器启动期间读取的文件中,其 CS.cfg.
在首次安装子系统时,创建 CS.cfg (一个 ASCII 文件)并填充适当的配置参数。修改实例功能的方式是通过子系统控制台进行更改的,这是推荐的方法。管理控制台中所做的更改反映在 配置文件中。
也可以直接编辑 CS.cfg 配置文件,在某些情况下,这是管理子系统的最简单方法。
13.2.1. 查找 CS.cfg 文件 复制链接链接已复制到粘贴板!
证书系统子系统的每个实例都有自己的配置文件 CS.cfg。每个子系统实例的文件内容根据子系统配置的方式、其他设置和配置(如添加新配置文件或启用自测试)以及子系统类型的不同而有所不同。
CS.cfg 文件位于实例的配置目录中。
/var/lib/pki/ instance_name/subsystem_type/conf
/var/lib/pki/ instance_name/subsystem_type/conf
例如:
/var/lib/pki/ instance_name/ca/conf
/var/lib/pki/ instance_name/ca/conf
13.2.2. 编辑配置文件 复制链接链接已复制到粘贴板!
不要在不熟悉配置参数的情况下直接编辑配置文件,或者确保更改对服务器可以接受。如果配置文件被错误修改,证书系统将无法启动。不正确的配置也可以导致数据丢失。
修改 CS.cfg 文件:
停止子系统实例。
pki-server stop instance_name
# pki-server stop instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow OR (如果使用
nuxwdog watchdog)systemctl stop pki-tomcatd-nuxwdog@instance_name.service
# systemctl stop pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当实例启动时,配置文件存储在缓存中。通过控制台对实例所做的任何更改都会在文件的缓存版本中改变。当服务器停止或重启时,缓存中存储的配置文件将写入磁盘。在编辑配置文件或更改更改之前,服务器停止服务器将会被缓存的版本覆盖。
-
打开
/var/lib/pki/ instance_name/subsystem_type/conf目录。 -
在文本编辑器中打开
CS.cfg文件。 - 编辑文件中的参数,并保存更改。
启动子系统实例。
pki-server start instance_name
# pki-server start instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow OR (如果使用
nuxwdog watchdog)systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.2.3. CS.cfg 配置文件概述 复制链接链接已复制到粘贴板!
每个子系统实例都有自己的主配置文件 CS.cfg,其中包含实例的所有设置,如插件和用于配置的 Java 类。参数和具体设置根据子系统类型的不同而有所不同,但通常而言,CS.cfg 文件定义了子系统实例的这些部分:
- 基本子系统实例信息,如其名称、端口分配、实例目录和主机名
- 日志记录
- 对实例用户目录(authorization)进行身份验证的插件和方法
- 实例所属的安全域
- 子系统证书
- 子系统实例使用的其他子系统
- 子系统使用的数据库类型和实例
- PKI 相关任务的设置,如 TKS 中的密钥配置文件、CA 中的证书配置文件以及 KRA 中密钥恢复所需的代理
许多配置参数(来自 PKI 任务除外)在 CA、OCSP、KRA 和 TKS 之间非常相似,因为它们都使用基于 Java 的控制台,因此可以在控制台中管理的配置设置具有类似的参数。
CS.cfg 文件基本参数 =值 格式。
#comment parameter=value
#comment
parameter=value
在 CS.cfg 文件中,许多参数块都有描述性注释,并用 pound (:)字符注释掉。服务器会忽略注释、空行、未知参数或拼写错误的参数。
TPS 中的一个错误会阻止它忽略 CS.cfg 文件中注释掉的行。只需删除这些行,而不是在 TPS CS.cfg 文件中注释掉行。
配置实例相同区域的参数往往分组到同一块中。
例 13.1. CS.cfg 文件中的日志记录设置
某些功能区域通过插件(如自我测试、作业和授权)来实现,以访问子系统。对于这些参数,插件实例具有唯一标识符(因为对于子系统调用的相同插件的多个实例)、实施插件名称和 Java 类。
例 13.2. 子系统授权设置
authz.impl._000=## authz.impl._001=## authorization manager implementations authz.impl._002=## authz.impl.BasicAclAuthz.class=com.netscape.cms.authorization.BasicAclAuthz authz.instance.BasicAclAuthz.pluginName=BasicAclAuthz
authz.impl._000=##
authz.impl._001=## authorization manager implementations
authz.impl._002=##
authz.impl.BasicAclAuthz.class=com.netscape.cms.authorization.BasicAclAuthz
authz.instance.BasicAclAuthz.pluginName=BasicAclAuthz
配置参数的值必须正确格式化,因此它们必须遵循两个规则:
- 需要本地化的值必须在 UTF8 字符中。
-
CS.cfg文件在参数值中支持正斜杠(/)。如果在值中需要反斜杠(\),则必须用反斜杠转义,即必须使用一行中的两个反斜杠。
以下小节是 CS.cfg 文件设置和参数的快照。这些不是 CS.cfg 文件参数的详细参考或示例。此外,每个子系统配置文件中可用的参数也非常不同,尽管有相似性。
13.2.3.1. 基本子系统设置 复制链接链接已复制到粘贴板!
基本设置特定于实例本身,而不与子系统的功能或行为直接相关。这包括实例名称、根目录、进程的用户 ID 和端口号的设置。首次安装和配置实例时分配的许多设置都以 pkispawn 开头。
例 13.3. CA 的基本实例参数: pkispawn 文件 ca.cfg
虽然与端口设置等信息 包含在 CS.cfg 文件中,但它不会在 CS.cfg 中设置。服务器配置在 server.xml 文件中设置。
CS.cfg 和 server.xml 中的端口 必须与 正常工作的 RHCS 实例匹配。
13.2.3.2. 日志记录设置 复制链接链接已复制到粘贴板!
根据子系统类型,可以配置几种不同类型的日志。每种日志在 CS.cfg 文件中都有自己的配置条目。
例如,CA 具有此条目用于事务日志,允许日志轮转、缓冲的日志和日志级别,以及其他设置:
有关这些参数及其值的更多信息,请参阅 第 17.1 节 “证书系统日志设置”。只要启用了审计日志记录,这些值不会影响合规性。
13.2.3.3. 身份验证和授权设置 复制链接链接已复制到粘贴板!
CS.cfg 文件设置如何识别用户访问子系统实例(身份验证)以及每个经过身份验证的用户批准哪些操作(authorization)。
CS 子系统使用身份验证插件来定义登录子系统的方法。
以下示例显示了名为 SharedToken 的身份验证实例,它实例化一个名为 SharedSecret 的 JAVA 插件。
对于某些授权设置,可以选择使用 LDAP 数据库存储用户条目的授权方法,在这种情况下,数据库设置与插件一起配置,如下所示。
有关安全配置 LDAP 和参数说明的更多信息,请参阅 第 7.5.4 节 “启用从 CS 到 DS 的 TLS 相互身份验证”。参数路径与显示的内容不同,但两个位置都允许使用相同的名称和值。
CA 还必须有批准用户请求的机制。与配置授权一样,这可以通过识别适当的身份验证插件并为它配置实例来实现:
auths.impl.AgentCertAuth.class=com.netscape.cms.authentication.AgentCertAuthentication auths.instance.AgentCertAuth.agentGroup=Certificate Manager Agents auths.instance.AgentCertAuth.pluginName=AgentCertAuth
auths.impl.AgentCertAuth.class=com.netscape.cms.authentication.AgentCertAuthentication
auths.instance.AgentCertAuth.agentGroup=Certificate Manager Agents
auths.instance.AgentCertAuth.pluginName=AgentCertAuth
13.2.3.4. 子系统证书设置 复制链接链接已复制到粘贴板!
一些子系统在配置文件中,每个子系统证书都有条目。
ca.sslserver.cert=MIIDmDCCAoCgAwIBAgIBAzANBgkqhkiG9w0BAQUFADBAMR4wHAYDVQQKExVSZWR... ca.sslserver.certreq=MIICizCCAXMCAQAwRjEeMBwGA1UEChMVUmVkYnVkY29tcHV0ZXIgRG9tYWluMSQwIgYDV... ca.sslserver.nickname=Server-Cert cert-pki-ca ca.sslserver.tokenname=Internal Key Storage Token
ca.sslserver.cert=MIIDmDCCAoCgAwIBAgIBAzANBgkqhkiG9w0BAQUFADBAMR4wHAYDVQQKExVSZWR...
ca.sslserver.certreq=MIICizCCAXMCAQAwRjEeMBwGA1UEChMVUmVkYnVkY29tcHV0ZXIgRG9tYWluMSQwIgYDV...
ca.sslserver.nickname=Server-Cert cert-pki-ca
ca.sslserver.tokenname=Internal Key Storage Token
13.2.3.5. 所需的子系统的设置 复制链接链接已复制到粘贴板!
至少,每个子系统依赖于 CA,这意味着必须在子系统设置中配置 CA (以及任何其他必要的子系统)。与另一个子系统的任何连接都以 conn 开头,然后是子系统类型和编号。
13.2.3.6. 数据库设置 复制链接链接已复制到粘贴板!
所有子系统都使用 LDAP 目录来存储其信息。此内部数据库在 internaldb 参数中配置,但 TPS 使用很多其他配置设置在 tokendb 参数中配置它。
有关安全配置 LDAP 和参数说明的详情,请参考 第 7.5.4 节 “启用从 CS 到 DS 的 TLS 相互身份验证”。除了作为 第 7.5.4 节 “启用从 CS 到 DS 的 TLS 相互身份验证” 的一部分外,不需要额外的配置。
13.2.3.7. 启用和配置发布队列 复制链接链接已复制到粘贴板!
注册流程的一部分包括将发布的证书发布到任何目录或文件。这基本上会关闭初始证书请求。但是,向外部网络发布证书可能会显著减慢颁发过程的速度 - 这导致请求开放。
为避免这种情况,管理员可以启用 发布队列。发布队列将发布操作(可能涉及外部 LDAP 目录)与使用单独的请求队列的请求和注册操作分隔开。请求队列会立即更新,以显示注册过程已完成,而发布队列则以网络流量的速度发送信息。
发布队列设置定义的、有限数量的线程,用于发布生成的证书,而不是为每个批准的证书打开新线程。
默认情况下,发布队列被禁用。它可以在 CA 控制台中启用,以及启用发布。
在默认情况下,如果 控制台中 启用了 LDAP 发布,则自动启用发布队列。否则,可以手动启用队列。
图 13.1. 启用发布队列
13.2.3.7.1. 通过编辑 CS.cfg 文件启用和配置发布队列 复制链接链接已复制到粘贴板!
通过编辑 CS.cfg 文件启用发布队列可让管理员设置发布其他选项,如用于发布操作的线程数量和队列页面大小。
停止 CA 服务器,以便您可以编辑配置文件。
systemctl stop pki-tomcatd-nuxwdog@instance_name.service
# systemctl stop pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 打开 CA 的
CS.cfg文件。vim /var/lib/pki/ instance_name/ca/conf/CS.cfg
# vim /var/lib/pki/ instance_name/ca/conf/CS.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
ca.publish.queue.enable设置为 true。如果参数不存在,则使用 参数添加一行。ca.publish.queue.enable=true
ca.publish.queue.enable=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 设置其他相关的发布队列参数:
-
ca.publish.queue.maxNumberOfThreads设置为发布操作打开的最大线程数。默认值为 3。 -
ca.publish.queue.priorityLevel设置发布操作的优先级。优先级值范围从-2 (最低优先级)到2 (最高优先级)。零(0)是普通优先级,也是默认值。 -
ca.publish.queue.pageSize设置发布队列页面中可存储的最大请求数。默认值为 40。 ca.publish.queue.saveStatus设置间隔,以保存每个指定数量的发布操作的状态。这允许在 CA 重启或崩溃时恢复发布队列。默认值为 200,但任何非零数将在 CA 重启时恢复队列。将此参数设置为 0 可禁用队列恢复。ca.publish.queue.maxNumberOfThreads=1 ca.publish.queue.priorityLevel=0 ca.publish.queue.pageSize=100 ca.publish.queue.saveStatus=200
ca.publish.queue.maxNumberOfThreads=1 ca.publish.queue.priorityLevel=0 ca.publish.queue.pageSize=100 ca.publish.queue.saveStatus=200Copy to Clipboard Copied! Toggle word wrap Toggle overflow TIP将
ca.publish.queue.enable设置为 false,ca.publish.queue.maxNumberOfThreads设为 0 可禁用发布队列,并使用单独的线程来发布证书。
-
重启 CA 服务器。
systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.2.3.8. PKI 任务设置 复制链接链接已复制到粘贴板!
CS.cfg 文件用于为每个子系统配置 PKI 任务。每个子系统的参数都有所不同,没有任何重叠。
例如,KRA 具有恢复密钥所需的代理数量的设置。
kra.noOfRequiredRecoveryAgents=1
kra.noOfRequiredRecoveryAgents=1
查看每个子系统的 CS.cfg 文件以熟悉其 PKI 任务设置;文件中的注释是学习不同参数的重点指南。
- CA 配置文件列出所有证书配置集和策略设置,以及生成 CRL 的规则。
- TPS 配置不同的令牌操作。
- TKS 列出从不同密钥类型派生密钥的配置集。
- OCSP 为不同的密钥集设置密钥信息。
13.2.3.9. 在 CA 发布的证书中更改 DN 属性 复制链接链接已复制到粘贴板!
在证书系统发布的证书中,DN 识别拥有证书的实体。在所有情况下,如果证书系统与目录服务器连接,则证书中的 DN 格式应该与目录中 DN 的格式匹配。名称不完全匹配;证书映射允许证书中的主题 DN 与目录中的对象 DN 不同。
在证书系统中,DN 基于 X.509 标准中定义的组件或属性。表 13.8 “值类型允许的字符” 列出默认支持的属性。属性集合可扩展。
| 属性 | 值类型 | 对象标识符 |
|---|---|---|
| cn | DirectoryString | 2.5.4.3 |
| ou | DirectoryString | 2.5.4.11 |
| o | DirectoryString | 2.5.4.10 |
| c | PrintableString, 双字符 | 2.5.4.6 |
| l | DirectoryString | 2.5.4.7 |
| st | DirectoryString | 2.5.4.8 |
| virtualizationstore | DirectoryString | 2.5.4.9 |
| title | DirectoryString | 2.5.4.12 |
| uid | DirectoryString | 0.9.2342.19200300.100.1.1 |
| | IA5String | 1.2.840.113549.1.9.1 |
| dc | IA5String | 0.9.2342.19200300.100.1.2.25 |
| serialNumber | PrintableString | 2.5.4.5 |
| unstructuredName | IA5String | 1.2.840.113549.1.9.2 |
| unstructuredaddress | PrintableString | 1.2.840.113549.1.9.8 |
默认情况下,证书系统支持 表 13.8 “值类型允许的字符” 中指定的属性。此支持的属性列表可通过创建或添加新属性来扩展。添加额外的 X.500Name 属性或组件的语法如下:
X500Name.NEW_ATTRNAME.oid=n.n.n.n X500Name.NEW_ATTRNAME.class=string_to_DER_value_converter_class
X500Name.NEW_ATTRNAME.oid=n.n.n.n
X500Name.NEW_ATTRNAME.class=string_to_DER_value_converter_class
值转换器类将字符串转换为 ASN.1 值;此类必须实施 netscape.security.x509.AVAValueConverter 接口。string-to-value 转换类可以是以下之一:
-
Netscape.security.x509.PrintableConverter将字符串转换为PrintableString值。字符串必须只有可打印的字符。 -
Netscape.security.x509.IA5StringConverter将字符串转换为IA5String值。字符串必须具有 IA5String 字符。 -
Netscape.security.x509.DirStrConverter将字符串转换为DirectoryString。根据 RFC 2253,字符串应该采用DirectoryString格式。 Netscape.security.x509.GenericValueConverter按以下顺序将字符串字符转换为最大:- PrintableString
- IA5String
- BMPString
- 通用字符串
属性条目类似如下:
X500Name.MY_ATTR.oid=1.2.3.4.5.6 X500Name.MY_ATTR.class=netscape.security.x509.DirStrConverter
X500Name.MY_ATTR.oid=1.2.3.4.5.6
X500Name.MY_ATTR.class=netscape.security.x509.DirStrConverter
13.2.3.9.1. 添加新或自定义属性 复制链接链接已复制到粘贴板!
要在证书系统模式中添加新的或专有属性,请执行以下操作:
停止证书管理器。
systemctl stop pki-tomcatd-nuxwdog@instance_name.service
# systemctl stop pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开
/var/lib/pki/cs'instance/conf/目录。 -
打开配置文件
CS.cfg。 将新属性添加到配置文件中。
例如,要添加三个专有属性
MYATTR1,它是DirectoryString,MYATTR2,它是一个IA5String,并且MYATTR3是PrintableString,请在配置文件末尾添加以下行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存更改并关闭该文件。
重启证书管理器。
systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 重新加载注册页面并验证更改;新属性应当以表单中显示。
要验证新属性是否生效,请使用手动注册表请求证书。
输入新属性的值,以便它可以验证它们出现在证书主题名称中。例如,为新属性输入以下值,并在主题名称中查找它们:
MYATTR1: a_value MYATTR2: a.Value MYATTR3: aValue cn: John Doe o: Example Corporation
MYATTR1: a_value MYATTR2: a.Value MYATTR3: aValue cn: John Doe o: Example CorporationCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 打开代理服务页面,并批准请求。
- 发布证书后,检查主题名称。证书应该显示主题名称中的新属性值。
13.2.3.9.2. 更改 DER-encoding 顺序 复制链接链接已复制到粘贴板!
可以更改 DirectoryString 的 DER-encoding 顺序,以便可以配置字符串,因为不同的客户端支持不同的编码。
更改 DirectoryString 的 DER-encoding 顺序的语法如下:
X500Name.directoryStringEncodingOrder=encoding_list_separated_by_commas
X500Name.directoryStringEncodingOrder=encoding_list_separated_by_commas
可能的编码值如下:
-
PrintableString -
IA5String -
UniversalString -
BMPString -
UTF8String
例如,DER-encoding 排序可以列出,如下所示:
X500Name.directoryStringEncodingOrder=PrintableString,BMPString
X500Name.directoryStringEncodingOrder=PrintableString,BMPString
要更改 DirectoryString 编码,请执行以下操作:
停止证书管理器。
systemctl stop pki-tomcatd-nuxwdog@instance_name.service
# systemctl stop pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开
/var/lib/pki/cs'instance/conf/目录。 -
打开
CS.cfg配置文件。 将编码顺序添加到配置文件。
例如,要指定两个编码值,即
PrintableString和UniversalString,编码顺序是PrintableStringfirst 和UniversalString,请在配置文件末尾添加以下行:X500Name.directoryStringEncodingOrder=PrintableString,UniversalString
X500Name.directoryStringEncodingOrder=PrintableString,UniversalStringCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存更改并关闭该文件。
启动 证书管理器。
systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
要验证编码订单是否生效,请使用手动注册表注册证书。对
cn使用John_Doe。 - 打开代理服务页面,并批准请求。
签发证书后,使用
dumpasn1工具检查证书的编码。主题名称的
cn组件应编码为UniversalString。使用
cn的John Smith创建并提交一个新请求。主题名称的
cn组件应编码为PrintableString。
13.2.3.10. 将 CA 设置为使用不同的证书为 CRL 进行签名 复制链接链接已复制到粘贴板!
证书管理器使用与其 OCSP 签名证书对应的密钥对来签名证书和证书撤销列表(CRL)。要使用不同的密钥对为 Certificate Manager 生成的 CRL 签名,可以创建 CRL 签名证书。证书管理器的 CRL 签名证书必须由自己签名或发布。
要启用证书管理器使用不同的密钥对为 CRL 签名,请执行以下操作:
为证书管理器请求 CRL 签名证书。
或者,使用能够生成密钥对的工具,如
certutil工具来生成密钥对,请求密钥对的证书,并在证书管理器的证书数据库中安装证书。有关certutil工具的详情,请参考 http://www.mozilla.org/projects/security/pki/nss/tools/。创建证书请求后,通过证书管理器终端页面提交它,选择正确的配置文件,如"Manual OCSP Manager Signing Certificate Enrollment"配置文件。该页面具有以下格式的 URL:
https://hostname:port/ca/ee/ca
https://hostname:port/ca/ee/caCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 提交请求后,登录代理服务页面。
-
检查请求所需的扩展。CRL 签名证书必须包含使用
crlSigning位设置的Key Usage扩展。 - 批准请求。
- 生成 CRL 签名证书后,通过控制台中的 System Keys 和 Certificates 在证书管理器数据库中安装证书。
停止证书管理器。
pki-server stop instance_name
# pki-server stop instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新证书管理器的配置,以识别新密钥对和证书。
进入 Certificate Manager 实例配置目录。
cd /var/lib/pki/instance-name/ca/conf/
# cd /var/lib/pki/instance-name/ca/conf/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开
CS.cfg文件并添加以下行:ca.crl_signing.cacertnickname=nickname cert-instance_ID ca.crl_signing.defaultSigningAlgorithm=signing_algorithm ca.crl_signing.tokenname=token_name
ca.crl_signing.cacertnickname=nickname cert-instance_ID ca.crl_signing.defaultSigningAlgorithm=signing_algorithm ca.crl_signing.tokenname=token_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow nickname 是分配给 CRL 签名证书的名称。
instance_ id 是证书管理器实例的名称。
如果安装的 CA 是基于 RSA 的 CA,则 signing_algorithm 可以是
SHA256withRSA、SHA384withRSA或SHA512withRSA。如果安装的 CA 是基于 EC 的 CA,则 signing_algorithm 可以是SHA256withEC,SHA384 带有EC,SHA512withEC。token_name 是用于生成密钥对和证书的令牌名称。如果使用内部/软件令牌,请使用
Internal Key Storage Token作为值。例如,条目可能类似如下:
ca.crl_signing.cacertnickname=crlSigningCert cert-pki-ca ca.crl_signing.defaultSigningAlgorithm=SHAMD512withRSA ca.crl_signing.tokenname=Internal Key Storage Token
ca.crl_signing.cacertnickname=crlSigningCert cert-pki-ca ca.crl_signing.defaultSigningAlgorithm=SHAMD512withRSA ca.crl_signing.tokenname=Internal Key Storage TokenCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存更改并关闭该文件。
重启证书管理器。
pki-server restart instance_name
# pki-server restart instance_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,证书管理器可以使用 CRL 签名证书为它生成的 CRL 签名证书进行签名。
13.2.3.11. 从 CS.cfg 中的缓存配置 CRL 生成 复制链接链接已复制到粘贴板!
CRL 缓存是一种简单的机制,它允许从内存中维护的撤销信息集合中获取证书撤销信息。为了获得最佳性能,建议启用此功能,它已代表默认行为。以下配置信息(默认)显示为信息目的,或者需要更改。
停止 CA 服务器。
systemctl stop pki-tomcatd-nuxwdog@instance_name.service
# systemctl stop pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 打开 CA 配置目录。
cd /var/lib/ instance_name/conf/
# cd /var/lib/ instance_name/conf/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
CS.cfg文件,将enableCRLCache和enableCacheRecovery参数设置为 true :ca.crl.MasterCRL.enableCRLCache=true ca.crl.MasterCRL.enableCacheRecovery=true
ca.crl.MasterCRL.enableCRLCache=true ca.crl.MasterCRL.enableCacheRecovery=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 CA 服务器。
systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.2.3.12. 在 CS.cfg 中为 CRL 配置更新间隔 复制链接链接已复制到粘贴板!
下面介绍如何灵活地配置 CRL 系统,以反映所需的行为。目标是根据两种类型的一些调度配置 CRL 更新。一个类型允许列表显式时间,另一个类型由更新间隔长度组成。还有一个混合场景,两者都被启用以考虑偏移。下面的 Note 条目实际上代表开箱即用的情况。
默认场景如下:
只有在需要更详细且需要特定的更新计划时,才会从此分离。部分的其余部分将讨论如何完成该操作。
在 CS.cfg 文件中为 full 和 delta CRL 配置设置涉及编辑参数。
| 参数 | 描述 | 接受的值 |
|---|---|---|
| updateSchema | 设置每个完整 CRL 生成的 delta CRL 的比率 | 整数值 |
| enableDailyUpdates | 根据设置时间启用和禁用设置 CRL 更新 | true 或 false |
| enableUpdateInterval | 根据设置间隔启用和禁用设置 CRL 更新 | true 或 false |
| dailyUpdates | 设置 CRL 应该更新的时间 | 以逗号分隔的时间列表 |
| autoUpdateInterval | 设置更新 CRL 的时间间隔(以分钟为单位) | 整数值 |
| autoUpdateInterval.effectiveAtStart | 允许系统尝试立即使用自动更新的新值,而不是等待当前调度的 nextUpdate 时间 | true 或 false |
| nextUpdateGracePeriod | 将时间(分钟)添加到 CRL 的有效性周期,以确保 CRL 在发布或复制期间保持有效 | 整数值 |
| refreshInSec | 在克隆 OCSP 中设置线程的定期性(以秒为单位)以检查 LDAP 是否更新 CRL | 整数值 |
autoUpdateInterval.effectiveAtStart 参数需要一个系统重启才能应用新值。此参数的默认值为 false,只能由确保其正在做什么的用户更改。
流程 :如何在 CS.cfg 中配置 CRL 更新间隔
停止 CA 服务器。
systemctl stop pki-tomcatd-nuxwdog@instance_name.service
# systemctl stop pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 进入 CA 配置目录。
cd /var/lib/ instance_name/conf/
# cd /var/lib/ instance_name/conf/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
CS.cfg文件,并添加以下行来设置更新间隔:ca.crl.MasterCRL.updateSchema=3
ca.crl.MasterCRL.updateSchema=3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 默认间隔为 1,这意味着每次生成 CRL 时都会生成完整的 CRL。
updateSchema间隔可以设置为任何整数。通过指定一个循环间隔或设置更新发生时间来设置更新频率:
通过启用
enableDailyUpdates参数指定设置时间,并将所需的时间添加到dailyUpdates参数中:ca.crl.MasterCRL.enableDailyUpdates=true ca.crl.MasterCRL.enableUpdateInterval=false ca.crl.MasterCRL.dailyUpdates=0:50,04:55,06:55
ca.crl.MasterCRL.enableDailyUpdates=true ca.crl.MasterCRL.enableUpdateInterval=false ca.crl.MasterCRL.dailyUpdates=0:50,04:55,06:55Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此字段设置在 CRL 应该更新时的每日时间。要多次指定,请输入以逗号分隔的时间列表,如
01:50,04:55,06:55。要输入多个天数的调度,请输入以逗号分隔的列表,以在同一天内设置时间,然后使用分号分隔列表来标识不同天数的时间。例如,设置01:50,04:55,06:55,02:00,05:00,17:00,00 在周期的第 1 天、1:50am、4:55am 和 6:55am,然后第 2 天、5am 和 5pm 配置撤销。通过启用
enableUpdateInterval参数来指定间隔,并将所需的间隔(以分钟为单位)添加到autoUpdateInterval参数:ca.crl.MasterCRL.enableDailyUpdates=false ca.crl.MasterCRL.enableUpdateInterval=true ca.crl.MasterCRL.autoUpdateInterval=240
ca.crl.MasterCRL.enableDailyUpdates=false ca.crl.MasterCRL.enableUpdateInterval=true ca.crl.MasterCRL.autoUpdateInterval=240Copy to Clipboard Copied! Toggle word wrap Toggle overflow
根据您的环境设置以下参数:
如果您运行没有 OCSP 子系统的 CA,请设置:
ca.crl.MasterCRL.nextUpdateGracePeriod=0
ca.crl.MasterCRL.nextUpdateGracePeriod=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您使用 OCSP 子系统运行 CA,请设置:
ca.crl.MasterCRL.nextUpdateGracePeriod=time_in_minutes
ca.crl.MasterCRL.nextUpdateGracePeriod=time_in_minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow ca.crl.MasterCRL.nextUpdateGracePeriod参数定义时间(以分钟为单位),值必须足够大,以便 CA 将新的 CRL 传播到 OCSP。您必须将参数设置为非零值。如果您还在您的环境中有 OCSP 克隆,还要设置:
ocsp.store.defStore.refreshInSec=time_in_seconds
ocsp.store.defStore.refreshInSec=time_in_secondsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ocsp.store.defStore.refreshInSec参数设置频率(以秒为单位),克隆 OCSP 实例会通过主 OCSP 实例的 LDAP 复制更新来告知 CRL 更新。有关参数的详情,请查看 表 13.9 “CRL 扩展间隔参数”。
重启 CA 服务器。
systemctl start pki-tomcatd-nuxwdog@instance_name.service
# systemctl start pki-tomcatd-nuxwdog@instance_name.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
当按间隔更新 CRL 时,可能会发生调度偏移。通常,偏移会因为手动更新和 CA 重启而发生。
要防止调度偏移,请将 enableDailyUpdates 和 enableUpdateInterval 参数设置为 true,并将所需的值添加到 autoUpdateInterval 和 dailyUpdates :
ca.crl.MasterCRL.enableDailyUpdates=true ca.crl.MasterCRL.enableUpdateInterval=true ca.crl.MasterCRL.autoUpdateInterval=240 ca.crl.MasterCRL.dailyUpdates=1:00
ca.crl.MasterCRL.enableDailyUpdates=true
ca.crl.MasterCRL.enableUpdateInterval=true
ca.crl.MasterCRL.autoUpdateInterval=240
ca.crl.MasterCRL.dailyUpdates=1:00
在以间隔更新 CRL 时,只接受一个 dailyUpdates 值。
间隔更新会每 24 小时使用 dailyUpdates 值重新同步。
13.2.3.13. 更改子系统的访问控制设置 复制链接链接已复制到粘贴板!
默认情况下,通过首先评估拒绝规则,然后通过评估 allow 规则来应用访问控制规则。要更改顺序,请更改 CS.cfg 中的 authz.evaluateOrder 参数。
authz.evaluateOrder=deny,allow
authz.evaluateOrder=deny,allow
此外,还可以从本地 web.xml 文件(基本 ACL)评估访问控制规则,或者通过检查 LDAP 数据库来访问更复杂的 ACL。authz.sourceType 参数标识要使用的授权类型。
authz.sourceType=web.xml
authz.sourceType=web.xml
在编辑 CS.cfg 文件以加载更新的设置后,始终重启子系统。
13.2.3.14. 设置 pkiconsole 的要求以使用 TLS 客户端证书身份验证 复制链接链接已复制到粘贴板!
pkiconsole 已被弃用。
编辑每个子系统的 CS.cfg 文件,搜索 authType 参数并将其设置如下:
authType=sslclientauth
authType=sslclientauth