13.4. tomcat 引擎和 Web 服务的配置文件


子系统的所有用户和管理(管理员、代理和审核员)服务都可通过 Web 协议访问。

本节讨论适用于所有 Red Hat Certificate System 子系统的两大配置文件(CA、KRA、OCSP、TKS 和 TPS):

  • /var/lib/pki/ instance_name/conf/server.xml 提供 Tomcat 引擎的配置。
  • /usr/share/pki/subsystem_type/webapps/WEB-INF/web.xml 为此实例提供的 Web 服务提供配置。

13.4.1. tomcatjss

注意

后续小节包括有关对参数值所需更改的重要配置信息。确保它们遵循严格的合规性。

example pki-tomcat/conf 目录中的 server.xml 文件中的以下配置可用于解释 Tomcatjs 如何适合 整个证书系统生态系统。安全端口及其对应 SSLHostConfig 参数的 Connector 条目的部分如下所示。

    <Connector name="Secure" port="21443"
protocol="org.dogtagpki.tomcat.Http11NioProtocol" SSLEnabled="true"
sslImplementationName="org.dogtagpki.tomcat.JSSImplementation" scheme="https"
secure="true" connectionTimeout="3000000" keepAliveTimeout="300000"
maxHttpHeaderSize="8192" acceptCount="100" maxThreads="150" minSpareThreads="25"
enableLookups="false" disableUploadTimeout="true" enableOCSP="true"
ocspCacheSize="1000" ocspMinCacheEntryDuration="7200"
ocspMaxCacheEntryDuration="14400" ocspTimeout="10"
serverCertNickFile="/var/lib/pki/rhcs10-ECC-SubCA/conf/serverCertNick.conf"
passwordFile="/var/lib/pki/rhcs10-ECC-SubCA/conf/password.conf"
passwordClass="org.apache.tomcat.util.net.jss.PlainPasswordFile"
certdbDir="/var/lib/pki/rhcs10-ECC-SubCA/alias">
  	<SSLHostConfig sslProtocol="TLS" protocols="TLSv1.2"
certificateVerification="optional"
ciphers="ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-
AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384">
   	<Certificate certificateKeystoreType="pkcs11" certificateKeystoreProvider="Mozilla-JSS"
certificateKeyAlias="NHSM-CONN-XC:Server-Cert cert-rhcs10-ECC-SubCA"/>
    </SSLHostConfig>
	</Connector>

在 Tomcat 引擎的 server.xml 配置文件中,有此 Connector 配置元素包含指向 tomcatjss 实现的指针,它可以插入到此 Connector 对象的 sslImplementation 属性中。

以下子小节中解释了每个关键参数元素。

13.4.1.1. TLS 密码配置

Red Hat Certificate System} 支持 TLS 1.2 密码套件。当 CS 实例充当服务器时,在实例的 server.xml 中定义,当 CS 实例充当客户端时,在 CS.cfg 中定义。

  • 如果您需要配置密码,请参阅更新密码列表 中的相应安装后部分。???
  • 有关支持的密码的详情,请参考 支持的加密套件

13.4.1.2. 在 CA 上启用自动撤销检查

与所有其他 RHCS 子系统一样,在 CA 中支持/启用撤销检查( 请参阅启用 RHCS 子系统的证书撤销检查)。通常,RHCS 建议 OCSP 进行更有效的证书撤销检查。但是,除其他 CS 子系统外设置 CA 的一件事是 CA 是其发出的证书的 CRL 的创建者,因此是 OCSP 子系统所需的 CRL 源。因此,他们需要在 OCSP 或其他 RHCS 子系统之前独立启动。

在这种情况下,当 CA 本身发布 CA 的内部 LDAP 服务器证书时,使用 CRL 分发点扩展而不是 AIA (OCSP)非常重要,因此在 CA 启动期间不会受到 chicken 和 egg 问题的影响。

13.4.1.2.1. 配置对 CRL 分发点的支持

为了缓解传播并减少大型 CRL 的存储,请务必注意,RHCS 建议对 CRL 进行分区,以允许使用 CRL 发布点的证书分组到较小的子集中。

如需有关如何设置 CA 以支持分区 CRL 证书注册配置文件的信息,请参阅配置对 CRL 分发点配置 点。

13.4.1.3. 为 RHCS 子系统启用证书撤销检查

证书吊销检查是 PKI 环境中证书验证的重要部分。RHCS 提供两种类型的证书撤销验证方法: OCSP 和 CRL 通过检测/处理 AIA (OCSP)或其对等证书的 CRL 分发点扩展。

RHCS 建议 OCSP 用于更有效地撤销检查。

注意

当使用 OCSP 时,当使用 OCSP 时,使用 CRL 分发点是不可避免的。在这种情况下,可以在上面的 CA 上启用自动撤销检查

使用 OCSP 的应用程序(本例中为 PKI 子系统)需要了解如何联系 OCSP 系统以验证证书。PKI 子系统默认没有启用 OCSP 检查。您可以通过编辑其 server.xml 文件来为 PKI 子系统启用 OCSP 检查。

注意

如果您将子系统配置为使用 SSL/TLS 与其内部数据库的连接,则 LDAP 内部数据库的 SSL/TLS 服务器证书必须由 OCSP 响应器识别。如果 OCSP 响应器无法识别 LDAP 服务器证书,则子系统将无法正确启动。此配置包括在 Red Hat Certificate System 规划、安装和部署指南中,因为 subsystem-LDAP SSL/TLS 服务器连接是子系统设置的一部分。

流程

  1. 停止实例

    systemctl stop pki-tomcatd@<instance_name>.service
  2. 编辑 /var/lib/pki/<instance_name>/conf/server.xml 文件,以配置 Connector name="Secure" 部分:

    1. enableOCSP 参数设置为 true
    2. 确保删除这两个参数及其分配值:

      ocspResponderURL
      ocspResponderCertNickname

      例如:

      <Connector name="Secure"
           enableOCSP="true"
           ocspCacheSize="1000"
           ocspMinCacheEntryDuration="60"
           ocspMaxCacheEntryDuration="120"
           ocspTimeout="10"
           ...
      />
  3. 启动实例:

    systemctl start pki-tomcatd@<instance_name>.service
注意

默认情况下,在安装过程中创建的所有 PKI 系统证书都使用 AIA (授权信息访问)扩展生成,指向其发出 CA 的内部 OCSP 服务。如果您遵循 将 AIA 扩展添加到证书 中的步骤,以便在安装 PKI 子系统之前指向外部 OCSP,则其证书(以及其 CA 发布的所有其他证书)都应与外部 OCSP 指向外部 OCSP。

13.4.1.3.1. 设置 OCSP 签名证书的信任

每个 OCSP 签名证书都必须在证书系统的 NSS 数据库中串联至可信 root 用户。在 RHCS 中,在验证过程中,每个 OCSP 响应都包含 OCSP 签名者证书链。因此,需要考虑以下事项:

  • 如果使用 OCSP 响应程序被配置为为每个 OCSP 响应提供 OCSP 签名证书的整个证书链,因为 RHCS OCSP 服务的默认情况,则不需要进一步操作。NSS 知道如何从给定信息验证此链。
  • 如果另一方面知道 OCSP 不会返回完整链,则需要在安装过程中手动导入链。详情请参阅 导入 OCSP 响应器

证书系统 OCSP 响应程序已包括每个响应的链。这包括证书系统外部 OCSP 响应程序以及每个 CA 附带的内部 OCSP 服务。此行为是默认的,不可更改。

13.4.1.3.2. server.xml 的 OCSP 参数

下表提供了在 server.xml 文件中与证书撤销检查(即 OCSP 和 CRL)相关的每个参数的信息。

Expand
表 13.10. server.xml 的 OCSP 参数
参数描述

enableRevocationCheck (也称为 enableOCSP)

为子系统启用(或禁用)撤销检查。

ocspResponderURL

设置发送 OCSP 请求的 URL。对于 OCSP Manager,这可能是其他 OCSP 或 CA 中的另一个 OCSP 服务。对于 TKS 或 KRA,这总是指向 OCSP 或 CA 中的外部 OCSP 服务。

ocspResponderCertNickname

为响应者( OCSP 签名证书或 CA 的 OCSP 签名证书)设置签名证书的 nickname。证书必须导入到子系统的 NSS 数据库中,并设置了适当的信任设置。

ocspCacheSize

设置缓存条目的最大数量。

ocspMinCacheEntryDuration

在进行另一个提取前设置最小秒数。例如,如果将其设置为 120,则无法再次检查证书的有效性,直到最后一次有效期检查前至少 2 分钟为止。

ocspMaxCacheEntryDuration

设置在下一次获取尝试前要等待的最大秒数。这可防止在有效检查之间有太大的窗口。

ocspTimeout

为 OCSP 请求设置超时时间(以秒为单位)。

注意

如果使用 OCSP 响应发送 nextUpdate 字段,它可能会影响 ocspMinCacheEntryDurationocspMaxCacheEntryDuration 的下一次获取时间,如下所示:

  • 如果在 ocspMinCacheEntryDuration 中设置的值之前达到 nextUpdate 中的值,则 fetch 不会启动,直到达到 ocspMinCacheEntryDuration 中设置的值。
  • 如果达到 ocspMinCacheEntryDuration,服务器会检查是否达到 nextUpdate 的值。如果达到了值,则获取将发生。
  • 无论 nextUpdate 中的值是什么,如果达到 ocspMaxCacheEntryDuration 中的设置,则获取将发生。
注意

由于 NSS 保留的底层 SSL/TLS 会话缓存,遵循行业标准来防止非常昂贵的完整握手并提供更强大的隐私,仅当 NSS 确定需要验证时,才会进行 OCSP 请求。SSL/TLS 会话缓存独立于 OCSP 状态缓存。在 NSS 确定要进行 OCSP 请求后,将发出请求,接收的响应将保存在 OCSP 证书状态缓存中。由于 SSL/TLS 会话缓存,这些 OCSP 缓存参数仅在 NSS 允许时进入 play。

13.4.1.4. 向证书添加 AIA 扩展

默认情况下,除非明确指定,CA 使用 AIA (Authority Information Access)扩展来发布证书,指向 CA 自己的内部 OCSP。设置 OCSP 实例后,您可以将 CA 配置为开始使用指向 OCSP 实例的 AIA 扩展发布证书。

前提条件

  • 以 root 用户身份登录。

流程

  1. 停止 CA:

    systemctl stop pki-tomcatd@<instance_name>.service
  2. 编辑 CA 的 CS.cfg,并将 ca.defaultOcspUri 变量设置为 OCSP。例如:

    ca.defaultOcspUri=http://hostname:32080/ocsp/ee/ocsp
  3. 启动 CA:

    systemctl start pki-tomcatd@<instance_name>.service
注意

默认情况下,每个子系统的 OCSP URL (如 KRA)会在其 server.xml 文件中设置。启用后,这会在查找证书状态时指示 RHCS 实例使用静态 URL,而不是嵌入在对等证书中的 AIA 扩展。有关使用 AIA 扩展的更多信息,请参阅为 RHCS 子系统启用证书撤销检查

13.4.1.5. 在证书中添加 CRL 分发点扩展

要为证书添加 CRL 分发点扩展,您需要使用带 CRL 分发点扩展的证书注册配置文件。要启用证书注册配置文件,请参阅 CA 的注册配置集配置带有 CRL 分发点

请注意,需要将 CA 配置为处理此类配置集的 CRL 分发点。请参阅 配置对 CRL 分发点的支持

13.4.2. 会话超时

当用户通过客户端应用连接到 PKI 服务器时,服务器将创建一个会话来跟踪用户。只要用户保持活动状态,用户可以对同一会话执行多个操作,而无需重新验证。

会话超时决定了服务器在因为不活跃而终止会话前等待多久。会话终止后,用户需要重新验证来继续访问服务器,服务器将创建新的会话。

有两种超时类型:

  • TLS 会话超时
  • HTTP 会话超时

由于客户端的工作方式的区别,客户端会因这些超时的不同而受到不同。

注意

某些客户端有自己的超时配置。例如,Firefox 有一个 keep-alive 超时设置。详情请查看 http://kb.mozillazine.org/Network.http.keep-alive.timeout。如果该值与 TLS Session Timeout 或 HTTP Session Timeout 的服务器的设置不同,可以观察不同的行为。

13.4.2.1. TLS 会话超时

TLS 会话是通过 TLS 握手协议建立的 TLS 连接的安全通信频道。

PKI 服务器为 TLS 会话活动生成审计事件。服务器在创建连接时使用 Outcome=Success 生成 ACCESS_SESSION_ESTABLISH 审计事件。如果无法创建连接,服务器将使用 Outcome=Failure 生成 ACCESS_SESSION_ESTABLISH 审计事件。连接关闭时,服务器将生成 ACCESS_SESSION_TERMINATED 审计事件。

TLS 会话超时(即 TLS 连接超时)在 /etc/pki/instance/server.xml 文件中的 Secure Connector 元素的 keepAliveTimeout 参数中配置:

...
Server
	Service
		Connector name="Secure"
			...
			keepAliveTimeout="300000"
			...
			/
	/Service
/Server
...

默认情况下,超时值设置为 300000 毫秒(即 5 分钟)。要更改这个值,请编辑 /etc/pki/instance/server.xml 文件,然后重新启动服务器。

注意

请注意,这个值将影响到服务器的所有 TLS 连接。较大的值可以提高客户端的效率,因为它们可以重复使用尚未过期的现有连接。但是,它也可能会增加服务器必须同时支持的连接数量,因为它需要更长的时间才能过期连接。

13.4.2.2. HTTP 会话超时

HTTP 会话是利用 HTTP cookie 在多个 HTTP 请求之间跟踪用户的机制。PKI 服务器不会为 HTTP 会话生成审计事件。

注意

为了进行审计一致性,请在本节中设置 session-timeout 值,以匹配 第 13.4.2.1 节 “TLS 会话超时” 中的 keepAliveTimeout 值。例如,如果 keepAliveTimeout 设置为 300000 (5 分钟),则将 session-timeout 设置为 30

HTTP 会话超时可以在 /etc/pki/instance/web.xml 文件中的 session-timeout 元素中配置:

...
web-app
	session-config
		session-timeout30/session-timeout
	/session-config
/web-app
...

默认情况下,超时值设置为 30 分钟。要更改值,请编辑 /etc/pki/instance/web.xml 文件,然后重新启动服务器。

注意

请注意,这个值会影响服务器上所有 Web 应用程序中的所有会话。较大的值可以提高用户的体验,因为不需要重新验证或再次查看访问横幅。但是,它也可能会增加安全风险,因为带外的 HTTP 会话需要更长的时间才能过期。

13.4.2.3. PKI Web UI 的会话超时

PKI Web UI 是在浏览器中运行的基于 Web 的交互式客户端。目前,它只支持客户端证书身份验证。

打开 Web UI 时,浏览器可能会创建多个 TLS 连接到服务器。这些连接与单个 HTTP 会话关联。

要为 Web UI 配置超时,请参阅 第 13.4.2.2 节 “HTTP 会话超时”。TLS 会话超时通常无关,因为浏览器会缓存客户端证书,以便它自动重新创建 TLS 会话。

当 HTTP 会话过期时,Web UI 不提供任何立即指示。但是,Web UI 将在用户执行操作前显示访问横幅(如果已启用)。

13.4.2.4. PKI 控制台的会话超时

PKI 控制台是一个交互式的单机图形 UI 客户端。它支持用户名/密码和客户端证书身份验证。

当控制台启动时,它将创建一个到服务器的 TLS 连接。控制台将在打开图形界面前显示访问横幅(如果已启用)。与 Web UI 不同,控制台不会维护与服务器的 HTTP 会话。

要为控制台配置超时,请参阅 第 13.4.2.1 节 “TLS 会话超时”。HTTP 会话超时无关,因为控制台不使用 HTTP 会话。

当 TLS 会话过期时,TLS 连接将关闭,控制台将立即退出系统。如果用户希望继续,用户需要重启控制台。

13.4.2.5. PKI CLI 的会话超时

PKI CLI 是执行一系列操作的命令行客户端。它支持用户名/密码和客户端证书身份验证。

当 CLI 启动时,它将创建一个到服务器和 HTTP 会话的 TLS 连接。CLI 将在执行操作前显示访问横幅(如果已启用)。

两个超时通常都与 PKI CLI 无关,因为操作按顺序执行,且 CLI 在完成后会立即退出。但是,如果 CLI 等待用户输入,速度缓慢或者变得无响应,则 TLS 会话或 HTTP 会话可能会过期,其余操作会失败。如果预期有这种延迟,请参阅 第 13.4.2.1 节 “TLS 会话超时”第 13.4.2.2 节 “HTTP 会话超时” 以适应预期的延迟。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部