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


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

本节讨论适用于所有红帽认证系统子系统(CA、KRA、KRA、TKS 和 TPS)的两个主要配置文件:

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

9.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>
Copy to Clipboard Toggle word wrap

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

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

9.4.1.1. TLS 密码配置

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

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

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

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

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

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

有关如何设置 CA 以支持使用 CRL 分发点证书注册配置集的服务器证书的 CRL 的信息,请参阅 第 7.3.8 节 “配置对 CRL 分发点的支持”

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

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

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

注意

当使用 OCSP 时,当使用 OCSP 时,使用 CRL 分发点是不可避免的。上述情况可以在 第 9.4.1.2 节 “在 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 服务器连接是子系统设置的一部分。

以下流程旨在配置 PKI 子系统实例,以根据其 AIA 扩展使用 OCSP 验证其对等证书。这个 OCSP 证书验证方法比默认静态 OCSP 响应器 URL 更灵活。

流程

  1. 停止实例:

    # systemctl stop pki-tomcatd@<instance_name>.service
    Copy to Clipboard Toggle word wrap
  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"
         ...
    />
    Copy to Clipboard Toggle word wrap
  3. 启动实例:

    # systemctl start pki-tomcatd@<instance_name>.service
    Copy to Clipboard Toggle word wrap
注意

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

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

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

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

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

9.4.1.3.2. server.xml 的 OCSP 参数

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

Expand
表 9.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 的值,则获取将不会启动,直到达到 ocspMinCacheEntryDuration 中设置的值。
  • 如果达到 ocspMinCacheEntryDuration,服务器会检查是否达到 nextUpdate 的值。如果达到该值,则会出现获取。
  • 无论 nextUpdate 中的值是什么,如果达到 ocspMaxCacheEntryDuration 中的设置,则获取将发生。
注意

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

9.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
    Copy to Clipboard Toggle word wrap
  2. 编辑 CA 的 CS.cfg,并将 ca.defaultOcspUri 变量设置为 OCSP。例如:

    ca.defaultOcspUri=http://hostname:32080/ocsp/ee/ocsp
    Copy to Clipboard Toggle word wrap
  3. 启动 CA:

    # systemctl start pki-tomcatd@<instance_name>.service
    Copy to Clipboard Toggle word wrap
注意

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

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

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

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

9.4.2. 会话超时

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

会话超时决定了服务器在因为不活跃而终止会话前,服务器从上次操作等待的时长。会话终止后,用户需要重新验证用户才能继续访问服务器,并且服务器将创建新的会话。

有两种超时:

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

由于客户端的工作方式差异,客户端会受到这些超时的不同影响。

注意

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

9.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
...
Copy to Clipboard Toggle word wrap

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

注意

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

9.4.2.2. HTTP 会话超时

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

注意

为了进行审计一致性,请在本节中设置 session-timeout 值,以匹配 第 9.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
...
Copy to Clipboard Toggle word wrap

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

注意

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

9.4.2.3. PKI Web UI 的会话超时

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

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

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

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

9.4.2.4. PKI 控制台的会话超时

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

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

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

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

9.4.2.5. PKI CLI 的会话超时

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

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

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

一些传统接口(用于批量颁发或策略框架等功能)仍然包含在 CA 的 web.xml 文件中。但是,由于这些功能已弃用且不再使用,因此可以从 CA 配置中删除它们以提高安全性。

流程

  1. 停止 CA。

    # pki-server stop instance_name
    Copy to Clipboard Toggle word wrap

    或者,如果使用 Nuxwdog watchdog:

    # systemctl stop pki-tomcatd-nuxwdog@instance_name.service
    Copy to Clipboard Toggle word wrap
  2. 打开 CA 的 Web 文件的目录。例如:

    # cd /var/lib/pki/instance_name/ca/webapps/ca/WEB-INF
    Copy to Clipboard Toggle word wrap
  3. 备份当前的 web.xml 文件。

    # cp web.xml web.xml.servlets
    Copy to Clipboard Toggle word wrap
  4. 编辑 web.xml 文件,并为以下每个已弃用的 servlet 删除整个 <servlet> 条目:

    • caadminEnroll
    • cabulkissuance
    • 基于 cacert 的注册
    • caenrollment
    • caProxyBulkIssuance

      例如,删除 caadminEnroll servlet 条目:

      <servlet>
            <servlet-name>  caadminEnroll  </servlet-name>
            <servlet-class> com.netscape.cms.servlet.cert.EnrollServlet
      </servlet-class>
                   <init-param><param-name>  GetClientCert  </param-name>
                               <param-value> false       </param-value> </init-param>
                   <init-param><param-name>  successTemplate  </param-name>
                               <param-value> /admin/ca/EnrollSuccess.template
      </param-value> </init-param>
                   <init-param><param-name>  AuthzMgr    </param-name>
                               <param-value> BasicAclAuthz </param-value>
      </init-param>
                   <init-param><param-name>  authority   </param-name>
                               <param-value> ca          </param-value> </init-param>
                   <init-param><param-name>  interface   </param-name>
                               <param-value> admin          </param-value>
      </init-param>
                   <init-param><param-name>  ID          </param-name>
                               <param-value> caadminEnroll </param-value>
      </init-param>
                   <init-param><param-name>  resourceID  </param-name>
                               <param-value> certServer.admin.request.enrollment
      </param-value> </init-param>
                   <init-param><param-name>  AuthMgr     </param-name>
                               <param-value> passwdUserDBAuthMgr </param-value>
      </init-param>
         </servlet>
      Copy to Clipboard Toggle word wrap
  5. 删除 servlet 条目后,删除对应的 < servlet-mapping> 条目。

    <servlet-mapping>
          <servlet-name>  caadminEnroll  </servlet-name>
          <url-pattern>   /admin/ca/adminEnroll  </url-pattern>
    </servlet-mapping>
    Copy to Clipboard Toggle word wrap
  6. 为最终用户请求接口删除三个 <filter-mapping > 条目。

       <filter-mapping>
          <filter-name>  EERequestFilter              </filter-name>
          <url-pattern>  /certbasedenrollment         </url-pattern>
       </filter-mapping>
    
       <filter-mapping>
          <filter-name>  EERequestFilter              </filter-name>
          <url-pattern>  /enrollment                  </url-pattern>
       </filter-mapping>
    
       <filter-mapping>
          <filter-name>  EERequestFilter              </filter-name>
          <url-pattern>  /profileSubmit               </url-pattern>
       </filter-mapping>
    Copy to Clipboard Toggle word wrap
  7. 再次启动 CA。

    # pki-server start instance_name
    Copy to Clipboard Toggle word wrap

    或者,如果使用 Nuxwdog watchdog:

    # systemctl start pki-tomcatd-nuxwdog@instance_name.service
    Copy to Clipboard Toggle word wrap

9.4.4. 自定义 Web 服务

除 TKS 外,所有子系统(TKS)都有某种类型的基于 Web 的服务页面用于代理,另一些用于其他角色,如管理员或结束实体。这些基于 Web 的服务页面使用基本的 HTML 和 JavaScript,可以自定义它们来使用不同的颜色、徽标和其他设计元素来适合现有站点或公司。

9.4.4.1. 自定义子系统 Web 应用程序

每个 PKI 子系统都有一个对应的 Web 应用程序,其中包含:

  • 包含文本、JavaScript 代码、页面布局、CSS 格式的 HTML 页面,等等
  • 一个 web.xml 文件,用于定义 servlets、路径、安全限制和其他
  • 到 PKI 库的链接。

子系统 Web 应用使用位于 /var/lib/pki/pki-tomcat/conf/Catalina/localhost/ 目录中的上下文文件进行部署,例如 ca.xml 文件:

<Context docBase="/usr/share/pki/ca/webapps/ca" crossContext="true" allowLinking="true"
    ...
</Context
Copy to Clipboard Toggle word wrap

docBase 指向默认 Web 应用目录 /usr/share/pki/ 的位置。

要自定义 Web 应用程序,请将 Web 应用程序目录复制到实例的 webapps 目录中:

$ cp -r /usr/share/pki/ca/webapps/ca /var/lib/pki/pki-tomcat/webapps
Copy to Clipboard Toggle word wrap

然后,将 docBase 更改为指向相对于 webapps 目录中的自定义 Web 应用程序目录:

<Context docBase="ca" crossContext="true" allowLinking="true"
    ...
</Context
Copy to Clipboard Toggle word wrap

更改将立即生效,而无需重新启动服务器。

要删除自定义 Web 应用程序,只需恢复 docBase 并删除自定义 Web 应用程序目录:

$ rm -rf /var/lib/pki/pki-tomcat/webapps/ca
Copy to Clipboard Toggle word wrap

9.4.4.2. 自定义 Web UI 主题

同一实例中的子系统 Web 应用程序共享相同的主题,其中包含:

  • CSS 文件,用于决定全局外观
  • 镜像文件,包括徽标、图标和其他
  • 品牌属性,用于决定页面标题、徽标链接、标题颜色和其他。

Web UI 使用 /var/lib/pki/pki-tomcat/conf/Catalina/localhost/ 目录中的 pki.xml 上下文文件进行部署:

<Context docBase="/usr/share/pki/common-ui" crossContext="true" allowLinking="true"
    ...
</Context
Copy to Clipboard Toggle word wrap

docBase 指向默认主题目录 /usr/share/pki/ 的位置。

要自定义主题,请将默认的me 目录复制到实例的 webapps 目录中的 pki 目录中:

$ cp -r /usr/share/pki/common-ui /var/lib/pki/pki-tomcat/webapps/pki
Copy to Clipboard Toggle word wrap

然后,将 docBase 更改为相对于 webapps 目录中的自定义主题目录:

<Context docBase="pki" crossContext="true" allowLinking="true"
    ...
</Context
Copy to Clipboard Toggle word wrap

更改将立即生效,而无需重新启动服务器。

要删除自定义主题,只需恢复 docBase 并删除自定义主题目录:

$ rm -rf /var/lib/pki/pki-tomcat/webapps/pki
Copy to Clipboard Toggle word wrap

9.4.4.3. 自定义 TPS 令牌状态标签

默认令牌状态标签存储在 /usr/share/pki/tps/conf/token-states.properties 文件中,如下所述。

要自定义标签,请将文件复制到实例目录中:

$ cp /usr/share/pki/tps/conf/token-states.properties /var/lib/pki/pki-tomcat/tps/conf
Copy to Clipboard Toggle word wrap

更改将立即生效,而无需重新启动服务器。

要删除自定义标签,只需删除自定义文件:

$ rm /var/lib/pki/pki-tomcat/tps/conf/token-states.properties
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat