搜索

2.5. 使用证书系统进行智能卡令牌管理

download PDF
智能卡 是一个包含加密证书和密钥的硬件加密设备。用户可使用它参与安全网站访问和安全邮件等操作。它还可作为身份验证设备来登录到 Red Hat Enterprise Linux 等各种操作系统。在服务的整个生命周期中,这些卡或令牌的 管理都通过令牌管理系统 (TMS)来完成。
TMS 环境需要证书颁发机构(CA)、令牌密钥服务(TKS)和令牌处理系统(TPS),以及可选的密钥恢复授权(KRA),用于服务器端密钥生成和密钥存档和恢复。在线证书状态协议(OCSP)也可用于与 CA 一起使用,为在线证书状态请求提供服务。本章概述了 TKS 和 TPS 系统,它提供了 Red Hat Certificate System 的智能卡管理功能,以及用户末尾与 TMS 一起工作的企业安全客户端(ESC)。

图 2.4. TMS 如何管理智能卡

TMS 如何管理智能卡

2.5.1. 令牌密钥服务(TKS)

令牌密钥服务(TKS)负责管理一个或多个主密钥。它维护 主密钥,是 TMS 中可访问密钥资料的唯一实体。在操作环境中,每个有效的智能卡令牌包含一组对称密钥,这些密钥来自主密钥和对卡的唯一 ID (CUID)。
最初,制造商在每个智能卡上初始化一组默认的(每个制造商主密钥)。部署站点中应通过一个 Key Changeover 操作来更改此默认设置,以在 TKS 上生成新的主密钥。作为主密钥的唯一所有者,当给出智能卡的 CUID 时,TKS 能够派生位于该特定智能卡上的对称密钥集合,然后允许 TKS 建立基于会话的安全频道,以便在 TMS 和每个智能卡之间进行安全通信。
注意
由于 TKS 管理的数据敏感度,应在具有受限访问权限的防火墙后设置 TKS。

2.5.1.1. 主密钥和密钥设置

TKS 支持多个智能卡密钥集。每个智能卡厂商为其智能卡令牌库存创建不同的默认(开发人员)静态密钥集,而 TKS 则配备了静态密钥集(每个制造商)来 kickstart 空白令牌的格式过程。
在空白智能卡令牌的格式过程中,Java 小程序和唯一派生的对称密钥集将注入到令牌中。每个主密钥(在某些情况下称为 keySet)是在 TKS 配置文件(CS.cfg)中有一组条目。每个 TPS 配置集都包含一个配置,用于将其注册到匹配密钥派生过程的适当 TKS keySet,这基本上负责在 TMS 和智能卡令牌之间建立由一组特定于会话的密钥保护的安全频道。
在 TKS 上,主密钥通过命名 keySets 来定义,供 TPS 引用。在 TPS 上,根据注册类型(内部或外部注册)在 TPS 配置集中指定,或者由 keySet Mapping Resolver 决定。

2.5.1.2. Key Ceremony (Shared Key Transport)

Key Ceremony 是一个以安全的方式将高度敏感的密钥从一个位置传输到另一个位置的过程。在一个情况下,在一个高度安全的部署环境中,可以在没有网络到外部的安全库中生成主密钥。或者,组织可能希望在不同的物理机器上具有 TKS 和 TPS 实例。在这两种情况下,假设没有人信任密钥,Red Hat Certificate System TMS 都提供了一个称为 tkstool 的工具来管理安全密钥传输。

2.5.1.3. 密钥更新(密钥更改)

当在工厂上创建 Global Platform 兼容智能卡时,制造商会将一组默认对称密钥刻录到令牌中。TKS 最初配置为使用这些对称密钥(TKS 配置中的每个厂商一个 KeySet 条目)。但是,由于这些对称密钥不是同一股票的智能卡,并且由于这些都是知名的密钥,因此强烈建议将这些对称密钥替换为每个令牌的唯一集合,而不是制造商共享,以限制一组可以操作令牌的实体。
通过令牌密钥 Service 子系统帮助更改密钥。TKS 的一个功能是查看之前讨论的智能卡令牌密钥派生的主密钥。可以在 TKS 控制下有多个主键。
重要
当在令牌上进行这个密钥更改过程时,令牌可能会在以后无法使用,因为它不再启用默认密钥。只要置备令牌有效的 TPS 和 TKS 系统,密钥基本上就好。因此,务必要保留所有主密钥,即使其中任何一个密钥都已过时。
您可以禁用 TKS 中的旧主密钥以更好地控制,但除非禁用的令牌是您的计划的一部分,否则请不要删除它们。支持将令牌密钥还原回原始密钥集,如果令牌要在某种测试方案中再次重复使用,则这是可行的。

2.5.1.4. APDU 和安全频道

Red Hat Certificate System Token Management System (TMS)支持 GlobalPlatform 智能卡规格,其中安全频道实现通过管理主密钥(TKS)的 Token Key System (TKS)完成,以及与 应用程序协议数据单元 (APDU)通信的智能卡(令牌)。
APDU 有两种类型:
  • 命令 A PDU 由 TPS 发送到智能卡
  • 响应 A PDU,由智能卡发送给 TPS,作为命令 APDU 的响应
当客户端采取行动并连接到证书系统服务器以进行请求时,可能会触发 APDU 命令的启动。安全频道从 TPS 发送到智能卡令牌 InitializeUpdate APDU 开始,并完全由 ExternalAuthenticate APDU 建立。然后,令牌和 TMS 都建立了一组共享 secret,称为会话密钥,用于加密和验证通信。这个经过验证和加密的通信通道被称为 Secure Channel。
因为 TKS 是唯一可以访问主密钥的实体,它能够生成一组唯一的对称 on-token 智能卡密钥,因此 Secure Channel 提供了 TMS 和每个令牌之间的足够保护通信。任何与频道断开连接都需要为新频道重新建立新会话密钥。

2.5.2. 令牌处理系统(TPS)

令牌处理系统(TPS)是智能卡证书注册的注册机构。它充当用户中心化企业安全客户端(ESC)之间的代表,它与客户端侧智能卡令牌交互,以及证书系统后端子系统,如证书颁发机构(CA)和密钥恢复授权(KRA)。
在 TMS 中,需要 TPS 来管理智能卡,因为它是唯一了解 APDU 命令和响应的 TMS 实体。TPS 将命令发送到智能卡,以帮助它们为特定实体(如用户或设备)生成和存储密钥和证书。智能卡操作经过 TPS,并转发到相应的子系统,如 CA 来生成证书或 KRA 来生成、存档或恢复密钥。

2.5.2.1. CoolKey Applet

Red Hat Certificate System 包括 Coolkey Java 小程序,专门在 TMS 支持的智能卡令牌上运行。Coolkey 小程序连接到处理证书和密钥相关操作的 PKCSFeature 模块。在令牌格式操作过程中,这个小程序使用 Secure Channel 协议注入到智能卡令牌中,并可为每个配置进行更新。

2.5.2.2. 令牌操作

Red Hat Certificate System 中的 TPS 可用于代表智能卡最终用户置备智能卡。令牌处理系统提供对以下主要令牌操作的支持:
  • Token Format - 格式操作负责将正确的 Coolkey 小程序安装到令牌中。小程序提供了一个平台,稍后可以放置后续的加密密钥和证书。
  • 令牌注册 - 注册操作会导致智能卡使用所需的加密密钥和加密证书填充。本材料允许智能卡的用户参与诸如安全网站访问和安全邮件等操作。支持两种类型的注册,这些注册在全局配置:
    • 内部注册 - 由配置集 映射 解析器决定的 TPS 配置集注册。
    • 外部注册 - 由 TPS 配置集注册,由用户的 LDAP 记录中的条目决定。
  • Token PIN Reset - 令牌 PIN 重置操作允许用户指定用来登录到令牌的新 PIN,使其可用于执行加密操作。
以下其他操作可以被视为上面所列主要操作的补充或固有的操作。它们可以根据相关配置或令牌状态触发。
  • Key Generation - 每个 PKI 证书由一个公钥/私钥对组成。在 Red Hat Certificate System 中,可以通过两种方式生成密钥,具体取决于 TPS 配置集配置
    • Token Side Key Generation - PKI 密钥对在智能卡令牌中生成。在令牌端生成密钥对 不允许 进行密钥归档。
    • Server Side Key Generation - PKI 密钥对在 TMS 服务器端生成。然后,密钥对会使用 Secure Channel 发回到令牌。在服务器端生成密钥对允许密钥归档。
  • 证书续订 - 此操作允许之前注册的令牌在重新使用同一密钥时重新发布令牌中的证书。当旧证书到期并且您希望创建新证书但维护原始密钥材料时,这非常有用。
  • 证书撤销 - 证书撤销可根据 TPS 配置集配置或基于令牌状态触发。
    通常,只有发布的证书的 CA 可以撤销证书,这可能意味着重新创建 CA 无法撤销某些证书。但是,可以在将令牌的撤销请求路由到已停用的 CA 时,仍然会将所有其他请求路由,如注册至新的活动 CA。这种机制被称为撤销 路由
  • 令牌密钥更改 - 由格式操作触发的关键 更改操作,从而能够将令牌的内部密钥从默认开发人员密钥集更改为由令牌处理系统的部署者控制的新密钥。这通常在任何实际的部署场景中完成,因为开发人员密钥集更适合测试情况。
  • 小程序更新 - 在 TMS 部署过程中,可以根据需要更新或降级 Coolkey 智能卡小程序。

2.5.2.3. TPS 配置文件

证书系统令牌处理系统子系统有助于管理智能卡令牌。令牌由 TPS 置备,以便它们从空状态转换为格式或注册条件。格式化令牌是一个包含 TPS 支持的 CoolKey 小程序令牌,而 Enrolled 令牌是个人(称为 绑定)的个人,具有必要的证书和加密密钥。这个完全置备的令牌可用于 crytptographic 操作。
TPS 也可以管理配置文件 。令牌配置文件的概念与以下内容相关:
  • 格式化或注册令牌的步骤。
  • 在操作成功完成后,已完成的令牌中包含的属性。
以下列表包含组成唯一令牌配置集的一些数量:
  • TPS 如何连接到用户的身份验证 LDAP 数据库?
  • 此令牌操作是否需要用户身份验证?如果是,将使用什么身份验证管理器?
  • TPS 如何连接到要获取证书的证书系统 CA?
  • 如何在此令牌中生成私钥和公钥?它们是否在令牌端或服务器端生成?
  • 生成私钥和公钥时要使用的密钥大小(以位为单位)?
  • 哪个证书注册配置文件(由 CA 置备)用于在这个令牌上生成证书?
    注意
    此设置将决定要写入令牌的证书的最终结构。根据证书中包含的扩展,可以为不同的使用创建不同的证书。例如,一个证书可以特殊化数据加密,另一个证书可用于签名操作。
  • 令牌上需要哪个 Coolkey 小程序版本?
  • 在此令牌中,将放置多少个证书用于注册操作?
以上以及许多其他令牌类型或配置集可以为每个令牌类型或配置集进行配置。Red Hat Certificate System Administration Guide 中提供了可用配置选项的完整列表。
要考虑的另一个问题是用户置备给定令牌的方式将被映射到单个令牌配置文件。注册有两种类型:
  • 内部注册 - 在这种情况下,TPS 配置集(tokenType)由配置集 Mapping Resolver 决定。这个基于过滤器的解析器可以配置为考虑令牌提供的任何数据,并确定目标配置集。
  • 外部注册 - 使用外部注册时,配置集(仅在名称中 - 实际的配置文件仍然在 TPS 中定义,其方式与内部注册使用的相同方式在每个用户的 LDAP 记录中指定,该记录在身份验证过程中获得)。这允许 TPS 从存储用户信息的外部注册目录服务器获取密钥注册和恢复信息。这可让您控制覆盖 TPS 内部注册机制固有的注册、撤销和恢复策略。与外部注册相关的用户 LDAP 记录属性名称可以配置。
    当需要"组证书"的概念时,外部注册非常有用。在这种情况下,组中的所有用户都可以在其 LDAP 配置文件中配置特殊的记录来下载共享证书和密钥。
要使用的注册会根据 TPS 实例全局配置。

2.5.2.4. 令牌数据库

令牌处理系统利用 LDAP 令牌数据库存储,用于存储保留活动令牌及其对应证书的列表,并跟踪每个令牌的当前状态。全新的令牌称为 未初始化,而完全注册的令牌 已注册。此数据存储会持续更新,并在处理令牌时被 TPS 查询。
2.5.2.4.1. 令牌状态和转换
令牌处理系统将状态存储在其内部数据库中,以确定当前的令牌状态以及可以在令牌上执行的操作。
2.5.2.4.1.1. 令牌状态
下表列出了所有可能的令牌状态:
表 2.9. 可能的令牌状态
Name 代码 标签
格式化 0 格式化(未初始化)
DAMAGED 1 物理损坏的
PERM_LOST 2 永久丢失
暂停 3 暂停(临时丢失)
ACTIVE 4 Active
已终止 6 已终止
未格式化的 7 未格式化的
命令行界面使用上面列出的 Name 显示令牌状态。图形界面改为使用 Label。
注意
以上表格不包含代码 5 ( 之前属于已删除的状态)的状态。
2.5.2.4.1.2. 使用图形或命令行界面的令牌状态转换完成
每个令牌状态的下一个状态有限,它可能会过渡到。例如,令牌可以将状态从 FORMATTED 更改为 ACTIVEDAMAGED,但它不能从 FORMATTED 过渡到 UNFORMATTED
另外,根据使用命令行或图形界面手动触发转换,或自动使用令牌操作,令牌可以过渡到的状态列表会有所不同。允许的手动转换列表存储在 tokendb.allowedTransitions 属性中,tps.operations.allowedTransitions 属性控制由令牌操作触发的转换。
基于手动和令牌操作的转换的默认配置存储在 /usr/share/pki/tps/conf/CS.cfg 配置文件中。
2.5.2.4.1.2.1. 使用命令行或图形界面的令牌状态转换
在使用 tokendb.allowedTransitions 属性中描述了 TPS 配置文件允许的所有可能转换:
tokendb.allowedTransitions=0:1,0:2,0:3,0:6,3:2,3:6,4:1,4:2,4:3,4:6,6:7
属性包含以逗号分隔的转换列表。每个转换都以 < current code> 格式编写: &lt;new code>。这些代码在 表 2.9 “可能的令牌状态” 中进行了描述。默认配置在 /usr/share/pki/tps/conf/CS.cfg 中保留。
下表描述了每个可能的转换信息:
表 2.10. 可能的手动令牌状态转换
转换 当前状态 下一个状态 描述
0:1 格式化 DAMAGED 这个令牌已被物理损坏。
0:2 格式化 PERM_LOST 这个令牌已被永久丢失。
0:3 格式化 暂停 这个令牌已被暂停(临时丢失)。
0:6 格式化 已终止 此令牌已被终止。
3:2 暂停 PERM_LOST 这个暂停的令牌已永久丢失。
3:6 暂停 已终止 这个暂停的令牌已被终止。
4:1 ACTIVE DAMAGED 这个令牌已被物理损坏。
4:2 ACTIVE PERM_LOST 这个令牌已被永久丢失。
4:3 ACTIVE 暂停 这个令牌已被暂停(临时丢失)。
4:6 ACTIVE 已终止 此令牌已被终止。
6:7 已终止 未格式化的 重复使用此令牌。
以下转换会根据令牌的原始状态自动生成。如果令牌最初是 FORMATTED,然后成为 SUSPENDED,则它只能返回 FORMATTED 状态。如果令牌最初是 ACTIVE,然后变为 SUSPENDED,它只能返回 ACTIVE 状态。
表 2.11. 令牌状态转换自动触发
转换 当前状态 下一个状态 描述
3:0 暂停 格式化 找到这个暂停(临时丢失)令牌。
3:4 暂停 ACTIVE 找到这个暂停(临时丢失)令牌。
2.5.2.4.1.3. 使用令牌操作的令牌状态转换
使用 tokendb.allowedTransitions 属性描述使用令牌操作的所有可能转换:
tps.operations.allowedTransitions=0:0,0:4,4:4,4:0,7:0
属性包含以逗号分隔的转换列表。每个转换都以 < current code> 格式编写: &lt;new code>。这些代码在 表 2.9 “可能的令牌状态” 中进行了描述。默认配置在 /usr/share/pki/tps/conf/CS.cfg 中保留。
下表描述了每个可能的转换信息:
表 2.12. 使用令牌操作可能的令牌状态转换
转换 当前状态 下一个状态 描述
0:0 格式化 格式化 这允许重新格式化令牌或升级令牌中的小程序/密钥。
0:4 格式化 ACTIVE 这允许注册令牌。
4:4 ACTIVE ACTIVE 这允许重新注册一个活跃的令牌。可能对外部注册很有用。
4:0 ACTIVE 格式化 这允许格式化活跃的令牌。
7:0 未格式化的 格式化 这允许格式化空白或之前使用的令牌。
2.5.2.4.1.4. 令牌状态和转换标签
令牌状态的默认标签和转换存储在 /usr/share/pki/tps/conf/token-states.properties 配置文件中。默认情况下,该文件包含以下内容:
# Token states
UNFORMATTED         = Unformatted
FORMATTED           = Formatted (uninitialized)
ACTIVE              = Active
SUSPENDED           = Suspended (temporarily lost)
PERM_LOST           = Permanently lost
DAMAGED             = Physically damaged
TEMP_LOST_PERM_LOST = Temporarily lost then permanently lost
TERMINATED          = Terminated

# Token state transitions
FORMATTED.DAMAGED        = This token has been physically damaged.
FORMATTED.PERM_LOST      = This token has been permanently lost.
FORMATTED.SUSPENDED      = This token has been suspended (temporarily lost).
FORMATTED.TERMINATED     = This token has been terminated.
SUSPENDED.ACTIVE         = This suspended (temporarily lost) token has been found.
SUSPENDED.PERM_LOST      = This suspended (temporarily lost) token has become permanently lost.
SUSPENDED.TERMINATED     = This suspended (temporarily lost) token has been terminated.
SUSPENDED.FORMATTED      = This suspended (temporarily lost) token has been found.
ACTIVE.DAMAGED           = This token has been physically damaged.
ACTIVE.PERM_LOST         = This token has been permanently lost.
ACTIVE.SUSPENDED         = This token has been suspended (temporarily lost).
ACTIVE.TERMINATED        = This token has been terminated.
TERMINATED.UNFORMATTED   = Reuse this token.
2.5.2.4.1.5. 自定义允许令牌状态转换
要自定义令牌状态转换列表,请在 /var/lib/pki/instance_name/tps/conf/CS.cfg 中编辑以下属性:
  • tokendb.allowedTransitions 用于自定义使用命令行或图形界面执行的允许转换列表
  • TPS.operations.allowedTransitions,以使用令牌操作自定义允许的转换列表
如果需要,可以从默认列表中删除转换,但无法添加新转换,除非它们位于默认列表中。默认值存储在 /usr/share/pki/tps/conf/CS.cfg 中。
2.5.2.4.1.6. 自定义令牌状态和转换标签
要自定义令牌状态并转换标签,请将默认的 /usr/share/pki/tps/conf/token-states.properties 复制到您的实例文件夹(/var/lib/pki/instance_name/tps/conf/CS.cfg),并根据需要更改列出的标签。
更改将立即生效,不需要重新启动服务器。TPS 用户界面可能需要重新加载。
要恢复到默认状态和标签名称,请从 instance 文件夹中删除编辑的 token-states.properties 文件。
2.5.2.4.1.7. 令牌活动日志
某些 TPS 活动记录在日志中。下表中列出了日志文件中可能的事件。
表 2.13. TPS 活动日志事件
活动 描述
add 添加了令牌。
格式 令牌已被格式化。
注册 令牌已注册。
recovery 令牌已被恢复。
续订 令牌已续订。
pin_reset 令牌 PIN 被重置。
token_status_change 使用命令行或图形界面更改令牌状态。
token_modify 修改了令牌。
delete 令牌已删除。
cert_revocation 令牌证书已被撤销。
cert_unrevocation 令牌证书被取消撤销。
2.5.2.4.2. 令牌策略
如果进行内部注册,每个令牌都可以由一组令牌策略进行管理。默认策略为:
RE_ENROLL=YES;RENEW=NO;FORCE_FORMAT=NO;PIN_RESET=NO;RESET_PIN_RESET_TO_NO=NO;RENEW_KEEP_OLD_ENC_CERTS=YES
内部注册下的所有 TPS 操作都受到令牌记录中指定的策略。如果没有为令牌指定策略,TPS 将使用默认的策略集合。

2.5.2.5. 映射 Resolver

Mapping Resolver 是 TPS 使用的一种可扩展机制,用于根据可配置的标准确定要分配给特定令牌的配置集。每个映射解析器实例可以在配置中唯一定义,每个操作都可以指向各种定义的映射解析器实例。
注意
映射解析器框架提供了一个用于编写自定义插件的平台。但是,有关如何编写插件的说明超出了本文档的范围。
FilterMappingResolver 是默认由 TPS 提供的唯一映射解析器实现。它允许您为每个 映射 定义一组映射和目标结果。每个映射都包含一组过滤器,其中:
  • 如果输入过滤器参数传递映射 中的所有 过滤器,则会分配 目标值
  • 如果输入参数失败,则会跳过该映射,并按顺序尝试下一个映射。
  • 如果过滤器没有指定的值,它将始终通过。
  • 如果过滤器具有指定的值,则输入参数必须完全匹配。
  • 定义映射的顺序非常重要。传递的第一个映射被视为已解析,并返回到调用者。
输入过滤器参数是从带有或没有扩展的智能卡令牌接收的信息。它们会根据上述规则针对 FilterMappingResolver 运行。FilterMappingResolver 支持以下输入过滤器参数:
  • appletMajorVersion - 令牌上 Coolkey 小程序的主要版本。
  • appletMinorVersion - 令牌上 Coolkey applet 的次要版本。
  • keySet or tokenType
    • keySet - 可以设置为客户端请求中的扩展。如果指定了扩展,必须与过滤器中的值匹配。keySet 映射解析器用于在使用外部注册时确定 keySet 值。当支持多个密钥集(例如,不同的智能卡令牌供应商)时,外部注册环境中需要 Key Set Mapping Resolver。在 TKS 中标识 master 密钥需要 keySet 值,这对于建立安全频道至关重要。当用户的 LDAP 记录填充了集合 tokenType (TPS 配置集)时,它不知道哪个卡最终会进行注册,因此 keySet 无法预先确定。keySetMappingResolver 有助于通过允许 keySet 在身份验证前解决 keySet 来解决此问题。
    • tokenType - okenType 可以设置为客户端请求中的扩展。如果指定扩展,则必须匹配过滤器中的值。当前为内部注册环境确定了 tokenType (也称为 TPS Profile)。
  • tokenATR - 令牌回答(ATR)。
  • tokenCUID - "start" 和 "end" 定义令牌的卡唯一 ID (CUID)的范围必须回退到传递此过滤器。

2.5.2.6. TPS 角色

TPS 默认支持以下角色:
  • TPS Administrator - 允许此角色:
    • 管理 TPS 令牌
    • 查看 TPS 证书和活动
    • 管理 TPS 用户和组
    • 更改常规 TPS 配置
    • 管理 TPS 验证器和连接器
    • 配置 TPS 配置集和配置集映射
    • 配置 TPS 审计日志记录
  • TPS Agent - 允许此角色:
    • 配置 TPS 令牌
    • 查看 TPS 证书和活动
    • 更改 TPS 配置集的状态
  • TPS Operator - 允许此角色:
    • 查看 TPS 令牌、证书和活动

2.5.3. TKS/TPS 共享 Secret

在 TMS 安装过程中,在令牌密钥服务和令牌处理系统之间建立了一个共享对称密钥。这个键的目的是嵌套和解封会话密钥,这些密钥对于安全频道至关重要。
注意
共享密钥目前仅保存在软件加密数据库中。计划在以后的 Red Hat Certificate System 发行版本中,支持将该密钥保留在硬件安全模块(HSM)设备上。实现此功能后,您将指示您使用 tkstool 将密钥传输到 HSM 来运行关键 Ceremony。

2.5.4. 企业安全客户端(ESC)

企业安全客户端 是一个 HTTP 客户端应用程序,类似于 Web 浏览器,它与 TPS 通信并处理来自客户端侧的智能卡令牌。在 ESC 和 TPS 之间建立 HTTPS 连接,但在每个 TLS 会话中的令牌和 TMS 之间也会建立一个底层的安全频道。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.