使用企业安全客户端管理智能卡
Red Hat Certificate System 9
为 Red Hat Certificate System 9.7 更新
Marc Muehlfeld
Red Hat Customer Content Services
Petr Bokoč
Red Hat Customer Content Services
Marc Muehlfeld
Red Hat Customer Content Services
Filip Hanzelka
Red Hat Customer Content Services
Ella Deon Ballard
Red Hat Customer Content Services
Tomáš Čapek
Red Hat Customer Content Services
摘要
本指南适用于证书系统子系统的常规用户。它解释了如何使用企业安全客户端管理个人证书和密钥,这是一个简单的接口来格式化和管理智能卡。
第 1 章 企业安全客户端简介
企业安全 客户端是 Red Hat Certificate System 的一个工具,简化了管理智能卡。最终用户可以使用安全令牌(smart 卡)来存储应用程序的用户证书,如单点登录(SSO)访问和客户端身份验证。最终用户签发令牌,其中包含签名、加密和其他加密功能所需的证书和密钥。
企业安全客户端是证书系统的完整令牌管理系统的第三部分。两个子系统 - 令牌密钥服务(TKS)和令牌处理系统(TPS)- 用于处理与令牌相关的操作。企业安全客户端是允许智能卡和用户访问令牌管理系统的接口。
注册令牌后,可将 Mozilla Firefox 和 Thunderbird 等应用程序配置为识别令牌并将其用于安全操作,如客户端身份验证和 S/MIME 邮件。企业安全客户端提供以下功能:
- 支持与全局平台兼容智能卡,如 Gemalto 64K V2 和 Safenet 300J Java 智能卡。
- 注册安全令牌,以便 TPS 识别它们。
- 维护安全令牌,如使用 TPS 重新注册令牌。
- 提供有关被管理令牌或令牌的当前状态的信息。
- 支持通过 TPS 和 DRM 子系统生成服务器端密钥,以便在令牌丢失时,可以在单独的令牌上存档并恢复密钥。
1.1. Red Hat Enterprise Linux、单点登录和身份验证
网络用户通常必须为他们使用的不同服务提交多个密码,如电子邮件、Web 浏览和服务器,以及网络上的服务器。维护多个密码并持续被提示输入它们,对于用户和管理员而言是个。单点登录 是一种配置,管理员可以创建单个密码存储,以便用户可以使用单一密码登录一次,并对所有网络资源进行身份验证。
Red Hat Enterprise Linux 支持多个资源的单点登录,包括登录工作站和解锁屏保器、使用 Mozilla Firefox 访问加密的网页,并使用 Mozilla Thunderbird 发送加密电子邮件。
单点登录对用户以及服务器和网络的其他安全层都方便。单点登录在安全有效验证方面隐藏,企业安全客户端会合并到红帽认证系统实施的公钥基础架构中。
建立安全网络环境的下角之一是确保访问权限仅限于有权访问网络的人员。如果允许访问,用户可以 向系统进行身份验证,这意味着他们可以验证其身份。一种这样的方法是显示 证书 :一个电子文档,用于标识出示的实体。
这些证书可以存储在智能卡中。当用户插入时,智能卡向系统显示证书并标识用户,以便对其进行身份验证。Red Hat Enterprise Linux 单点登录的两个验证方法之一是智能卡验证。(另一个是基于 Kerberos 的身份验证。)
使用智能卡进行单点登录通过三个步骤:
- 用户在卡读取器中插入智能卡。这由 Red Hat Enterprise Linux 上的可插拔验证模块(PAM)检测到。
- 系统将证书映射到用户条目,然后将智能卡上出示的证书与用户条目中存储的证书进行比较。
- 如果针对密钥分发中心(KDC)成功验证了证书,则允许用户登录。
企业安全客户端管理智能卡,这是管理单点登录的一部分。
1.2. Red Hat Certificate System 和 Enterprise Security Client
Red Hat Certificate System 创建、管理、续订和撤销证书和密钥。要管理智能卡,证书系统有一个令牌管理系统来生成密钥、创建证书请求和接收证书。
两个子系统 - 令牌密钥服务(TKS)和令牌处理系统(TPS)- 用于处理与令牌相关的操作。企业安全客户端是允许智能卡和用户访问令牌管理系统的接口。
管理令牌涉及四个证书系统子系统,两个用于管理令牌(TKS 和 TPS),两个用于管理公钥基础架构(CA 和 DRM)中的密钥和证书。
- 令牌处理系统(TPS)与智能卡交互,以帮助它们为特定实体(如用户或设备)生成和存储密钥和证书。智能卡操作通过 TPS 进行,并转发到适当的子系统以进行操作,如生成证书或数据恢复管理器以归档和恢复密钥的证书颁发机构。
- 令牌密钥服务(TKS)生成或派生用于 TPS 和智能卡之间的通信的对称密钥。TKS 生成的每组键都是唯一的,因为它们基于卡的唯一 ID。密钥在智能卡上格式化,用于加密智能卡和 TPS 之间的通信或提供身份验证。
- 证书颁发机构(CA)会创建并撤销保存在智能卡中的用户证书。
- (可选)数据恢复管理器(DRM)存档并恢复智能卡的密钥。
图 1.1. 证书系统如何管理智能卡

如 图 1.1 “证书系统如何管理智能卡” 显示,TPS 是 Red Hat Certificate System 令牌管理系统中的中央中心。令牌直接与 TPS 通信。然后,TPS 与 TKS 通信,以生成一组可用于 TPS-token 通信(1)的唯一密钥。注册智能卡时,会为令牌创建新的私钥;如果配置了密钥归档,这些密钥可以在 DRM (2)中存档。然后,CA 处理证书请求(3)并发布要存储在令牌上的证书。TPS 将这些证书发回到企业安全客户端(4)),并将其保存到令牌。
企业安全客户端是 TPS 通过安全 HTTP 通道(HTTPS)与证书系统通信各个令牌的共识。
要使用令牌,令牌处理系统必须能够识别并与它们通信。首先必须 注册 令牌,以使用所需的密钥和证书填充令牌,并将令牌添加到证书系统中。企业安全客户端为最终用户提供注册令牌的最终实体的用户界面。
第 2 章 安装企业安全客户端
2.1. 客户端支持的平台
Enterprise Security Client 接口在 Red Hat Enterprise Linux 7.3 及更新的版本上被支持。
ESC 也支持最新版本的 Red Hat Enterprise Linux 5 和 6。虽然这些平台不支持 Red Hat Certificate System 9,但这些客户端可用于 Red Hat Certificate System 9 中的 TMS 系统。
2.2. 支持的智能卡
详情请查看 Red Hat Certificate System 9 发行注记 中的对应部分。
2.3. 在 Red Hat Enterprise Linux 上安装和卸载企业安全客户端
2.3.1. 安装 ESC 客户端
安装企业安全客户端的第一个步骤是下载所需的软件包。获取软件包的方法有两种:
- 从客户门户网站下载 ISO 镜像。
- 使用 Red Hat yum 工具
获取 RPM 的首选方法是使用 yum 命令行工具,如下所示:
# yum install esc
如果 yum 命令成功完成,则所有必需的企业安全客户端 RPM 和依赖项都将安装并可供使用。
注意
如果您使用 yum 工具安装企业安全客户端,则不需要进一步安装;客户端已经安装。以下流程是从 CD 镜像安装的步骤。
- 以 root 用户身份,安装 Enterprise Security Client 软件包:
# yum install esc
企业安全客户端位于 Red Hat Enterprise Linux 32 位系统的
/usr/lib/esc-1.1.0 中,以及 Red Hat Enterprise Linux 64 位系统上的 /usr/lib64/esc-1.1.0。esc shell 脚本安装在 /usr/bin/esc 中。您可以通过运行 esc 命令启动企业安全客户端。
Linux 的企业安全客户端实施一个静默运行的守护进程(escd),等待插入智能卡。插入未注册的智能卡时,守护进程会自动启动客户端 UI,企业安全客户端则指导用户完成注册过程。也可以通过选择 System Settings,然后从 System 菜单手动启动客户端,然后选择 智能卡管理器。
2.3.2. 卸载 ESC 客户端
- 拔出所有 USB 令牌。
- 停止企业安全客户端。
- 以 root 用户身份登录,并使用 rpm -ev 删除企业安全客户端 RPM:
# yum remove esc
注意更新 RPM 文件的版本号以匹配您的版本。 - 删除安装目录中任何剩余的文件。
第 3 章 使用企业安全客户端
以下小节包含有关将企业安全客户端用于令牌注册、格式化和密码重置操作的基本说明。
3.1. 企业安全客户端的栏图标
许多程序在栏或通知区域中维护一个图标,可用于控制程序的操作,通常是在右键单击图标时通过上下文菜单。企业安全客户端提供遍历图标,包括对错误和操作的工具提示,如插入或删除智能卡。
图 3.1. Token Tray Icon 和 Tooltip 示例

在默认配置中,企业安全客户端启动并自动最小化到栏。在 Red Hat Enterprise Linux 上,只有在启用了 Gnome 中的通知区域时,才会出现栏图标。
3.2. 启动企业安全客户端
启动企业安全客户端有两个概念。必须启动企业安全客户端进程,并静默运行,等待任何插入的智能卡或令牌。当插入智能卡或手动打开时,企业安全客户端的用户界面会自动打开。
3.2.1. 在 Red Hat Enterprise Linux 上打开企业安全客户端
从命令行启动企业安全客户端守护进程(escd):
esc
这个守护进程侦听智能卡,并在插入智能卡后立即打开 GUI。
要手动打开企业安全客户端 GUI,请单击 Applications、System Settings,然后点 Smart Card Manager。

3.3. 配置附件主页
企业安全客户端中的 Phone Home 功能将每个智能卡中的信息与指向不同 TPS 服务器和企业安全客户端 UI 页面的信息相关联。每当企业安全客户端访问新的智能卡时,它可以连接到 TPS 实例并检索 phone Home 信息。
手机主页检索并缓存此信息;因为信息在本地缓存,因此每次插入格式化的智能卡时,就不必联系 TPS 子系统。
每个密钥或令牌的信息可能会有所不同,这意味着可以为不同的公司或客户组配置不同的 TPS 服务器和注册 URL。通过电话主页,可以为不同的签发者或公司单元配置不同的 TPS 服务器,而无需手动配置企业安全客户端来查找正确的服务器和 URL。
注意
要让 TPS 子系统利用 Phone Home 功能,必须在 TPS 配置文件中启用 Phone Home,如下所示:
op.format.userKey.issuerinfo.enable=true op.format.userKey.issuerinfo.value=http://server.example.com
3.3.1. 关于附件主页配置文件
企业安全客户端基于 Mozilla XULRunner。因此,每个用户都有一个与 Mozilla Firefox 和 Thunderbird 使用的用户配置文件类似的配置文件。企业安全客户端访问配置首选项文件。当企业安全客户端缓存每个令牌的信息时,这些信息会存储在用户的配置文件中。下次启动企业安全客户端时,它会从配置文件检索信息,而不是再次联系服务器。
插入智能卡并启动时,企业安全客户端首先检查令牌是否有 phone Home 信息。如果没有信息在令牌上,客户端会检查
esc.global.phone.home.url 参数的 esc-prefs.js 文件。
如果令牌中没有存储在令牌中,且没有全局 phone Home 参数,则插入智能卡时,系统会提示用户输入 Phone Home URL,如 图 3.2 “提示单卡信息” 所示。当令牌格式化时,会提供并存储其他信息。在这种情况下,公司为用户提供了特定的 Phone Home URL。用户提交 URL 后,格式过程会将其余信息添加到 Phone Home 配置集。用户的格式进程没有任何不同。
图 3.2. 提示单卡信息

3.3.2. 设置全球公司主页信息
当将安全令牌插入到机器中时,会自动触发电话主页。系统会立即尝试从令牌中读取 phone Home URL,并联系 TPS 服务器。对于新令牌或之前格式化的令牌,保存在卡中可能无法使用 Phone Home 信息。
企业安全客户端配置文件
esc-prefs.js 具有一个参数,它允许设置全局 phone Home URL。这个参数是 esc.global.phone.home.url,默认情况下不在文件中。
定义全局 phone Home URL:
- 删除任何现有的企业安全客户端用户配置文件目录。插入智能卡时会自动创建配置文件目录。在 Red Hat Enterprise Linux 上,配置集目录为
~/.redhat/esc。 - 打开
esc-prefs.js文件。在 Red Hat Enterprise Linux (32 位)上,配置集目录为/usr/lib/esc-1.1.0/defaults/preferences。在 64 位系统中,这是/usr/lib64/esc-1.1.0/defaults/preferences。 - 将全局 phone Home 参数行添加到
esc-prefs.js文件中。例如:pref("pref("esc.global.phone.home.url","https://localhost:8443/tps/phoneHome");");根据 DNS 和网络配置,URL 可以引用机器名称、完全限定域名或 IPv4 或 IPv6 地址。
3.3.3. 手动将 phone Home 信息添加到令牌中
可使用两种方式之一手动将令牌放在令牌上:
- 首选方法是,信息刻录到令牌上。当令牌从制造商排序时,公司提供有关在发布时如何配置令牌的详细信息。
- 如果令牌为空,公司 IT 部门可在格式化少量令牌时提供信息。
~/.redhat/esc/numeric_string.default/prefs.js 文件中的每个智能卡使用以下信息:
- TPS 服务器和端口。例如:
"esc.key.token_ID.tps.url" = "http://server.example.com:7888/nk_service"
- TPS 注册接口 URL。例如:
"esc.key.token_ID.tps.enrollment-ui.url" = "http://server.example.com:7888/cgi_bin/esc.cgi?"
- 发布公司名称或 ID。例如:
"esc.key.token_ID.issuer.name" = "Example Corp"
- Phone Home URL。例如:
"esc.key.token_ID.phone.home.url" = "https://localhost:8443/tps/phoneHome"
- (可选)当插入注册的智能卡时访问的默认浏览器 URL。
"esc.key.token_ID.EnrolledTokenBrowserURL" = "http://www.test.example.com"
prefs.js 文件使用的更多参数列在 ??? 中。
注意
这些参数的 URL 可以引用机器名称、完全限定域名或 IPv4 或 IPv6 地址,具体取决于 DNS 和网络配置。
3.3.4. 将 TPS 配置为使用附件主页
只有 TPS 正确配置了 TPS 时使用的不同信息时,它才会正常工作。如果没有为 Phone Home 配置 TPS,则忽略此功能。电话主页在
/var/lib/pki-tps/cgi-bin/home 目录中的 index.cgi 中配置;这会将 phone Home 信息输出到 XML。
例 3.1 “TPS Phone Home 配置文件” 显示 TPS 子系统用于配置 phone Home 功能的 XML 文件示例。
例 3.1. TPS Phone Home 配置文件
<ServiceInfo><IssuerName>Example Corp</IssuerName>
<Services>
<Operation>http://server.example.com:7888/nk_service ## TPS server URL
</Operation>
<UI>http://server.example.com:7888/cgi_bin/esc.cgi ## Optional
Enrollment UI
</UI>
<EnrolledTokenBrowserURL>http://www.test.url.com ## Optional
enrolled token url
</EnrolledTokenBrowserURL>
</Services>
</ServiceInfo>
TPS 配置 URI 是 TPS 服务器的 URL,它将其余信息返回给企业安全客户端。这个 URL 的示例是 https://localhost:8443/tps/phoneHome; URL 可以根据需要引用机器名称、完全限定域名或 IPv4 或 IPv6 地址。当访问 TPS 配置 URI 时,TPS 服务器会提示您将所有 phone Home 信息返回给企业安全客户端。
要测试智能卡服务器的 URL,请在 TPS Config URI 字段中输入地址,然后单击 Test URL。
如果服务器成功联系,则消息框表示成功。如果测试连接失败,则会出现错误对话框。
3.4. 将用户设置为注册
安装令牌处理系统后,其配置设置之一就是 LDAP 目录,其中包含允许注册令牌的用户。只有存储在此身份验证目录的用户才能注册、格式化或具有令牌。在尝试注册令牌或智能卡前,请确保请求操作的人员在 LDAP 目录中有一个条目。
TPS 配置为查看 LDAP 目录中的特定基本 DN。这在 TPS 的
CS.cfg 中配置:
auth.instance.0.baseDN=dc=example,dc=comauth.instance.0.hostport=server.example.com:389
要使用户被允许注册令牌,用户必须是基本 DN 下的某个位置。
如果用户还没有条目,则管理员必须将用户添加到指定基本 DN 中的指定 LDAP 目录中,然后才能为用户注册任何令牌。
/usr/bin/ldapmodify -a -D "cn=Directory Manager" -w secret-p 389 -h server.example.comdn: uid=jsmith,ou=People,dc=example,dc=comobjectclass: person objectclass: inetorgperson objectclass: top uid: jsmith cn: John Smith email: jsmith@example.com userPassword: secret
3.5. 管理智能卡
您可以使用 Manage Smart Cards 页面执行许多可应用到令牌中存储的加密密钥的操作。
您可以使用此页面格式化令牌,设置和重置卡的密码,并显示卡信息。另外,也可以通过 管理智能卡 页面访问其他两个操作,即注册令牌和查看诊断日志。这些操作在其它部分中解决。
图 3.3. 管理智能卡页面

3.5.1. 格式化智能卡
当您格式化智能卡时,它会重置为未初始化的状态。这会删除所有之前生成的用户密钥对,并在注册过程中清除智能卡上设置的密码。
可将 TPS 服务器配置为将 applet 和 symmetric 密钥的新版本加载到卡中。TPS 支持 Red Hat Enterprise Linux 7.9 附带的 CoolKey 小程序。
格式化智能卡:
- 在计算机上插入受支持的智能卡。确定在 Active Smart Cards 表中列出了该卡。
- 在 Manage Smart Cards 屏幕的 Smart Card Function 部分中,单击 Format。
- 如果为用户身份验证配置了 TPS,请在身份验证对话框中输入用户凭据,然后单击 Submit。
- 在格式化过程中,卡的状态将变为 BUSY,并显示进度条。格式化过程完成后会显示成功信息。单击 OK 以关闭消息框。
- 格式化过程完成后,活动目录智能卡 表会显示卡状态为 UNINITIALIZED。
3.5.2. 重置智能卡密码
如果用户在注册卡后忘记智能卡的密码,则可以重置密码。在智能卡中重置密码:
- 在计算机上插入受支持的智能卡。确定在 Active Smart Cards 表中列出了该卡。
- 在 Manage Smart Cards 屏幕的 Smart Card Function 部分中,单击 Reset Password 以显示 Password 对话框。
- 在 Enter new password 字段中输入 一个新的智能卡密码。
- 确认 Re-Enter password 字段中的新的智能卡密码,然后单击 OK。

- 如果为用户身份验证配置了 TPS,请在身份验证对话框中输入用户凭据,然后单击 Submit。
- 等待密码完成重置。
3.5.3. 查看证书
智能卡管理器 可以显示所选智能卡的基本信息,包括存储的密钥和证书。查看证书信息:
- 在计算机上插入受支持的智能卡。确定在 Active Smart Cards 表中列出了该卡。
- 从列表中选择卡,然后单击 View Certificates。
这将显示保存在卡中的证书的基本信息,包括序列号、证书别名和有效期日期。 - 要查看证书的更多详细信息,请从列表中选择证书,然后单击 View。

3.5.4. 导入 CA 证书
Xulrunner Gecko 引擎实现了对哪些基于 SSL 的 URL (如浏览器或企业安全客户端)访问的严格控制。如果企业安全客户端(通过 Xulrunner 框架)不信任 URL,则无法访问 URL。
信任基于 SSL 的 URL 的一种方法是导入并信任为站点发布证书的 CA 的 CA 证书链。(另一个是为站点创建一个信任 安全例外,如 第 3.5.5 节 “为服务器添加例外” 中所示)。
任何发布智能卡证书的 CA 必须可以被企业安全客户端应用程序信任,这意味着其 CA 证书必须导入到企业安全客户端中。
- 在 Web 浏览器中打开 CA 的最终用户页面。
http
s://server.example.com:9444/ca/ee/ca/ - 点顶部的 Retrieval 选项卡。
- 在左侧菜单中,单击 Import CA Certificate Chain 链接。
- 选择单选按钮将链下载为文件,并记住下载文件的位置和名称。
- 打开企业安全客户端。

- 单击 View Certificates 按钮。

- 点 Authorities 选项卡。
- 点 Import。

- 浏览到 CA 证书链文件,然后选择它。
- 出现提示时,确认您要信任 CA。
3.5.5. 为服务器添加例外
Xulrunner Gecko 引擎实现了对哪些基于 SSL 的 URL (如浏览器或企业安全客户端)访问的严格控制。如果企业安全客户端(通过 Xulrunner 框架)不信任 URL,则无法访问 URL。
信任基于 SSL 的 URL 的一种方法是为站点创建一个信任 安全例外,它会导入站点的证书并强制企业安全客户端识别它。(另一个选项是为站点导入 CA 证书链并自动信任它,如 第 3.5.4 节 “导入 CA 证书” 中所示)。
智能卡可用于通过需要特殊安全例外的 SSL 访问服务或网站;这些例外可通过企业安全客户端配置,类似于在 Mozilla Firefox 等浏览器中为网站配置例外。
- 打开企业安全客户端。

- 单击 View Certificates 按钮。

- 单击 Servers 选项卡。
- 单击 Add Exception。

- 输入 URL,包括用来访问智能卡的站点或服务的端口号。然后单击 Get Certificates 按钮,以下载站点的服务器证书。

- 点 Confirm Security Exception 将站点添加到允许的站点列表中。
3.5.6. 注册智能卡
大多数智能卡都将使用自动注册过程自动注册。您还可以使用 管理智能卡 工具手动注册智能卡。
如果您使用用户密钥对注册令牌,则令牌可用于基于证书的操作,如 SSL 客户端身份验证和 S/MIME。
注意
可将 TPS 服务器配置为在服务器上生成用户密钥对,然后在 DRM 子系统中归档,以便在令牌丢失时进行恢复。
手动注册智能卡:
- 将受支持的、未注册的智能卡插入到计算机中。确定在 Active Smart Cards 表中列出了该卡。
- 单击 Enroll 以显示 密码 对话框。
- 在 Enter a password 字段中输入一个新密钥密码。在 Re-Enter a password 字段中确认新密码。
- 单击 OK 以开始注册。
- 如果为用户身份验证配置了 TPS,请在身份验证对话框中输入用户凭据,然后单击 Submit。如果 TPS 已配置为将密钥归档到 DRM,注册过程将开始生成和归档密钥。

注册完成后,智能卡的状态会显示为 ENROLLED。
3.6. 诊断问题
企业安全客户端包含基本的诊断工具和一个简单的接口,用于记录错误和常见事件,如插入和删除智能卡或更改卡的密码。诊断工具可以识别并通知用户有关企业安全客户端、智能卡和 TPS 连接的问题。
打开 过期信息 窗口:
- 打开企业安全客户端。

- 从列表中选择要检查的智能卡。
- 点 Diagnostics 按钮。

- 这会打开所选智能卡的附件 信息 窗口。

locateds Information 屏幕显示以下信息:
- 企业安全客户端版本号。
- 运行客户端的 Xulrunner 框架的版本信息。
- 企业安全客户端检测到的卡数。
对于检测到的每个卡,会显示以下信息:
- 在智能卡上运行的 applet 版本。
- 智能卡的字母数字 ID。
- 卡的状态可以是三项:
- NO_APPLET No key 被检测到。
- 未初始化。密钥已被检测到,但没有注册证书。
- 已注册。检测到的卡已使用证书和密钥信息注册。
- 卡的 phone Home URL。这是从中获取所有附件主页信息的 URL。
- 卡签发者名称,如 示例公司。
- 卡的回答到重设(ATR)字符串。这是一个唯一值,可用于识别不同类型的智能卡。例如:
3BEC00FF8131FE45A0000000563333304A330600A1
- TPS Phone Home URL。
- TPS 服务器 URL。这通过 phone Home 检索。
- TPS 注册表单 URL。这通过 phone Home 检索。
- 有关卡中包含的每个证书的详细信息。
- 最新企业安全客户端错误和常见事件的运行日志。
企业安全客户端记录了两种类型的诊断信息。它记录了智能卡返回的 错误,并记录通过企业安全客户端发生的事件。它还返回有关智能卡配置的基本信息。
3.6.1. 错误
- 企业安全客户端无法识别卡。
- 在智能卡操作过程中出现问题,如证书注册、密码重置或格式操作。
- 企业安全客户端丢失了与智能卡的连接。当问题与 PCSC 守护进程通信时,可能会发生这种情况。
- 企业安全客户端和 TPS 之间的连接丢失。
智能卡可向 TPS 报告某些错误代码;它们记录在 TPS 的
tps-debug.log 或 tps-error.log 文件中,具体取决于消息的原因。
表 3.1. 智能卡错误代码
| 返回码 | 描述 |
|---|---|
| 常规错误代码 | |
| 6400 | 没有特定的诊断 |
| 6700 | Lc 中错误的长度 |
| 6982 | 未满足安全性状态 |
| 6985 | 不满意的使用条件 |
| 6a86 | P1 P2 不正确 |
| 6d00 | 无效的指令 |
| 6e00 | 无效的类 |
| 安装负载错误 | |
| 6581 | 内存故障 |
| 6a80 | data 字段中的参数不正确 |
| 6a84 | 没有足够的内存空间 |
| 6a88 | 未找到引用的数据 |
| 删除错误 | |
| 6200 | 应用程序已逻辑删除 |
| 6581 | 内存故障 |
| 6985 | 无法删除引用的数据 |
| 6a88 | 未找到引用的数据 |
| 6a82 | 未找到应用程序 |
| 6a80 | 命令数据中的不正确的值 |
| 获取数据错误 | |
| 6a88 | 未找到引用的数据 |
| 获取状态错误 | |
| 6310 | 更多可用数据 |
| 6a88 | 未找到引用的数据 |
| 6a80 | 命令数据中的不正确的值 |
| 加载错误 | |
| 6581 | 内存故障 |
| 6a84 | 没有足够的内存空间 |
| 6a86 | P1/P2 不正确 |
| 6985 | 不满意的使用条件 |
3.6.2. 事件
- 简单的事件,如卡插入和删除、成功完成的操作、导致错误以及类似的事件。
- 从 TPS 报告错误到企业安全客户端。
- NSS 加密库已初始化。
- 检测到其他低级智能卡事件。
第 4 章 将智能卡用于 Web 和邮件客户端
注册智能卡后,智能卡可用于 SSL 客户端身份验证和 S/MIME 电子邮件应用程序。PKCS the 模块有不同的名称,并位于不同的目录中,具体取决于操作系统。
表 4.1. PKCS这个模块位置
| 平台 | 模块名称 | 位置 |
|---|---|---|
| Red Hat Enterprise Linux | onepin-opensc-pkcs11.so | /usr/lib64/ |
4.1. 设置浏览器以支持令牌的 SSL
设置 Firefox 浏览器以支持令牌的 SSL:
- 打开 编辑 菜单并选择 Preferences。如果菜单栏在 Firefox 中不可见,请按 Alt 键临时显示它。
- 在 Advanced 条目中,选择 Certificates 选项卡,然后单击 Security Devices 按钮。
- 添加 PKCS the 驱动程序:
- 点 Load 按钮。
- 输入模块名称。
- 点 Browse,选择 Enterprise Security Client PKCS the driver 库,然后点 OK。

- 如果 CA 尚未被信任,请下载并导入 CA 证书。
- 打开 CA 上的 SSL End Entity 页面。例如:
http
s://server.example.com:9444/ca/ee/ca/ - 单击 Retrieval 选项卡,然后单击 Import CA Certificate Chain。
- 以二进制形式点 Download the CA certificate chain,然后点 Submit。
- 选择一个合适的目录来保存证书链,然后单击 OK。
- 点击 Edit > Preferences,然后选择 Advanced 选项卡。
- 单击 View Certificates 按钮。
- 单击 Authorities,然后导入 CA 证书。
- 设置证书信任关系。
- 点击 Edit > Preferences,然后选择 Advanced 选项卡。
- 单击 View Certificates 按钮。
- 单击 Edit,再为网站设置信任。
证书可用于 SSL。
第 5 章 设置企业级安全客户端
企业安全客户端现在基于 Mozilla XULRunner,允许内置到 Mozilla 中的首选项工具用于简单配置企业安全客户端。第 3 章 使用企业安全客户端 中讨论的简单 UI 管理最重要的配置设置。
注意
可以在无需额外配置的情况下启动企业安全客户端。
5.1. 企业安全客户端配置概述
企业安全客户端是一个中间前端,提供用户(及其令牌)、令牌处理系统和证书颁发机构之间的连接。企业安全客户端提供两个不同的接口:
- 基于 XUL 和 JavaScript 的本地接口
- 一个 Web 托管界面,可用于远程访问,基于 CGIs、html 和 JavaScript
从本地服务器访问的主要企业安全客户端用户界面融合了 Mozilla XULRunner 技术。XULRunner 是一个运行时软件包,它基于 XUL 托管独立应用程序,它是一个 XML 标记语言,其中包含为用户界面设置的丰富的功能,并为应用程序提供一些与 HTML 相比的优点:
- 广泛的 UI 小部件,并对演示进行更大的控制。
- 本地标记到客户端计算机,因此其特权级别高于 HTML。
- JavaScript 作为用于便捷程序逻辑脚本脚本语言,以及利用 XPCOM 技术的功能。
可以自定义并编辑 Web 托管接口的所有文件,以便在原因下更改企业安全客户端的行为或外观。
企业安全客户端与令牌处理系统一起支持不同的用户配置文件,以便不同类型的用户具有不同的令牌注册路径。企业安全客户端和 TPS 还支持不同的 令牌配置文件,以便可以为不同类型的令牌自定义证书设置。这两个配置都在 TPS 中设置,具体参见 红帽认证系统规划、安装和部署指南 中所述。
5.1.1. 关于首选项配置文件
使用首选项文件,企业安全客户端配置与 Mozilla 应用程序类似。主配置文件是
esc-prefs.js,该文件与企业安全客户端一起安装。第二个是 Mozilla 配置集目录中的 prefs.js,这是首次启动企业安全客户端时创建的。
企业安全客户端为每个支持的平台使用 Mozilla 配置首选项。默认配置文件位于每个平台的以下目录中:
- 在 Red Hat Enterprise Linux 32 位上,这位于
/usr/lib/esc-1.1.0/defaults/preferences/esc-prefs.js中。 - 在 Red Hat Enterprise Linux 64 位上,这位于
/usr/lib64/esc-1.1.0/defaults/preferences/esc-prefs.js中。
esc-prefs.js 文件指定在首次启动企业安全客户端时要使用的默认配置。这包括连接到 TPS 子系统的参数,以设置密码提示并配置 phone Home 信息。每个设置都前面带有单词 pref,然后参数和值用括号括起来。例如:
pref(parameter, value);
esc-prefs.js 文件参数列在 表 5.1 “Esc-prefs.js Parameters” 中。默认 esc-prefs.js 文件显示在 例 5.1 “默认 esc-prefs.js File” 中。
表 5.1. Esc-prefs.js Parameters
| 参数 | 描述 | 备注和默认值 |
|---|---|---|
| toolkit.defaultChromeURI | 定义用于联系 XUL Chrome 页面的企业安全客户端的 URL。 | ("toolkit.defaultChromeURI", "chrome://esc/content/settings.xul") |
| esc.tps.message.timeout | 设置用于连接到 TPS 的超时时间(以秒为单位)。 | ("esc.tps.message.timeout","90"); |
| esc.disable.password.prompt | 启用密码提示,这意味着需要密码从智能卡中读取证书信息。
密码提示默认为禁用,因此任何人都可以使用企业安全客户端。但是,在安全上下文中,比如公司使用安全官管理令牌操作,然后启用密码提示来限制对企业安全客户端的访问。
|
("esc.disable.password.prompt","yes");
|
| esc.global.phone.home.url |
设置用于联系 TPS 服务器的 URL。
通常,在已经通过 Applet 的令牌上设置 Phone Home 信息。如果令牌没有 phone Home 信息,这意味着它无法联系 TPS 服务器,那么企业安全客户端会检查全局的默认 Phone Home URL。
只有在明确设置时才会检查此设置。此设置也适用于通过客户端格式化的每个令牌,因此设置此参数会强制所有令牌都指向相同的 TPS。只有在需要该特定行为时,才使用此参数。
|
("esc.global.phone.home.url", "http://server.example.com:7888/cgi-bin/home/index.cgi");
|
| esc.global.alt.nss.db |
指向包含服务器上所有企业安全客户端用户使用的通用安全数据库的目录。
只有在明确设置时才会检查此设置。如果没有设置,则每个用户只能访问每个单独的配置文件安全数据库,而不是共享的数据库。
|
prefs("esc.global.alt.nss.db", "C:/Documents and Settings/All Users/shared-db");
|
例 5.1. 默认 esc-prefs.js File
本例中不包含此文件中的注释。
#pref("toolkit.defaultChromeURI", "chrome://esc/content/settings.xul");
pref("signed.applets.codebase_principal_support",true); for internal use only
pref("capability.principal.codebase.p0.granted", "UniversalXPConnect"); for internal use only
pref("capability.principal.codebase.p0.id", "file://"); for internal use only
pref("esc.tps.message.timeout","90");
#Hide the format button or not.
pref("esc.hide.format","no");
#Use this if you absolutely want a global phone home url for all tokens
#Not recommended!
#pref("esc.global.phone.home.url","http:/test.host.com:7888/cgi-bin/home/index.cgi");
启动企业安全客户端时,它会为系统上的每个用户创建一个单独的、唯一的配置集目录。在 Red Hat Enterprise Linux 上,这些配置集存储在
~/.redhat/esc/numeric_string.default/prefs.js 中。
注意
当企业安全客户端需要用户配置值的任何更改时,更新的值将写入用户的配置集区域,而不是默认的 JavaScript 文件。
表 5.2 “prefs.js 参数” 列出
prefs.js 文件的最相关参数。编辑此文件非常复杂。prefs.js 文件由企业安全客户端动态创建和编辑,当企业安全客户端退出时会覆盖对此文件的手动更改。
表 5.2. prefs.js 参数
| 参数 | 描述 | 备注和默认值 |
|---|---|---|
| esc.tps.url | 设置用于连接到 TPS 的企业安全客户端的 URL。默认不设置。 | |
| esc.key.token_ID.tps.url |
设置用于联系 TPS 的主机名和端口。
如果此 phone Home 信息没有刻录到工厂的卡中,可以通过添加 TPS URL、注册页面 URL、签发者名称和 phone Home URL 来手动将其添加到卡中。
|
("esc.key.token_ID.tps.url" = "https://test.host.com:8443/tps/tps");
|
| esc.key.token_ID.issuer.name |
提供注册令牌的机构的名称。
| ("esc.key.token_ID.issuer.name" = "Example Corp"); |
| esc.key.token_ID.phone.home.url |
提供用于联系 TPS 的附件主页功能的 URL。
如果令牌没有指定 phone Home 信息,则全局 Phone Home 参数会设置一个用于任何令牌注册的默认值。通过将此参数设置为特定的令牌 ID 号,指定的 phone Home 参数仅适用于该令牌。
| ("Esc.key.token_ID.phone.home.url" = "http://server.example.com:7888/cgi-bin/home/index.cgi?"); |
5.2. 使用 TPS 配置 SSL 连接
默认情况下,TPS 通过标准 HTTP 与企业安全客户端通信。另外,在很多情况下,使用 HTTP over SSL (HTTPS)来保护 TPS-client 通信。
企业安全客户端必须具有签发 TPS 证书的 CA 证书的 CA 证书才能信任 TPS 连接。从那里,企业安全客户端可以配置为连接到 TPS 的 SSL 证书。
- 下载 TPS 使用的 CA 证书。
- 在 Web 浏览器中打开 CA 的最终用户页面。
http
s://server.example.com:9444/ca/ee/ca/ - 点顶部的 Retrieval 选项卡。
- 在左侧菜单中,单击 Import CA Certificate Chain 链接。
- 选择单选按钮将链下载为文件,并记住下载文件的位置和名称。
- 打开企业安全客户端。

- 导入 CA 证书。
- 单击 View Certificates 按钮。

- 点 Authorities 选项卡。
- 点 Import。

- 浏览到 CA 证书链文件,然后选择它。
- 出现提示时,确认您要信任 CA。
- 企业安全客户端需要配置为通过 SSL 与 TPS 通信;这通过设置 Phone Home URL 来完成,这是企业安全客户端用来连接到 TPS 的默认 URL。
- 将新的空白令牌插入到机器中。空白令牌是未格式化的,因此它们没有现有的 phone Home URL,必须手动设置 URL。格式化令牌(令牌可由制造商或您的 IT 部门格式化)已设置了 URL,因此不会提示设置 phone Home URL。
- 使用 SSL 端口信息填写新的 TPS URL。例如:
http
s://server.example.com:7890/cgi-bin/home/index.cgi - 单击 Test 按钮,将消息发送到 TPS。如果请求成功,客户端会打开一个对话框,提示已成功获取 Phone Home URL。
5.3. 使用共享安全数据库
企业安全客户端通常会为与企业安全客户端关联的每个用户配置文件创建一个新的 NSS 安全数据库。当用户导入或信任要使用的企业安全客户端的证书时,都会将其导入到该配置集的 NSS 数据库中。(这与 Web 浏览器具有不同安全数据库、密码存储和书签的不同用户配置文件类似。)
当多个企业安全客户端用户都在单个机器上使用客户端时,可能会出现实例。在这种情况下,除了用户配置文件数据库外,企业安全客户端还信任的通用共享安全数据库有意义。此共享安全数据库包含所有用户通用的证书,如 TPS 使用的 CA 签名证书。
默认情况下不配置使用共享安全数据库。
- 停止企业安全客户端。
- 创建安全数据库目录以及要共享的数据库目录。在配置企业安全客户端之前,数据库必须存在,客户端可读,并且包含客户端将使用的证书。NSS 数据库可以使用 certutil 命令创建。如需更多信息,请参阅 certutil 文档,如 https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/tools/NSS_Tools_certutil。
- 打开
esc-prefs.js文件。vim /usr/lib/esc-1.1.0/defaults/preferences/esc-prefs.js
- 添加 esc.global.alt.nss.db 参数,指向包含共享数据库的目录。
prefs("esc.global.alt.nss.db", "/etc/pki/nssdb"); - 重启 Enterprise Security Client 以应用配置更改。
5.4. 为令牌操作禁用 LDAP 身份验证
默认情况下,请求令牌操作的每个用户都针对 LDAP 目录进行身份验证。如果用户有一个条目,则允许操作;如果用户没有条目,则拒绝操作。
出于测试目的或某些类型的用户,可以很简单或首选地禁用 LDAP 身份验证。这没有在企业安全客户端配置中进行配置,而是在令牌处理系统配置中进行配置,且必须由 TPS 管理员完成。
- 停止 TPS 子系统。
# systemctl stop pki-tps
- 打开 TPS 配置文件。
# vim /var/lib/pki-tps/conf/CS.cfg
- 将身份验证参数设置为 false。
op.operation_type.token_type.loginRequest.enable=false op.operation_type.token_type.auth.enable=false
operation_type 是禁用 LDAP 身份验证的令牌操作,如 注册、格式 或 pinreset。禁用一个操作类型的身份验证不会为任何其他操作类型禁用它。token_type 是令牌配置集。常规用户、安全官以及由安全官注册的用户有默认配置文件。对于其他类型的用户或证书,也可以有自定义令牌类型。例如:op.
enroll.userKey.loginRequest.enable=false op.enroll.userKey.pinReset.enable=false - 重新启动 TPS 子系统。
# systemctl restart pki-tomcatd@pki-tomcat.service
Red Hat Certificate System 9 管理指南中的 编辑 TPS 配置。
附录 A. 修订历史记录
请注意,修订号与该手册版本相关,而不是 Red Hat Certificate System 的版本号。
| 修订历史 | |||
|---|---|---|---|
| 修订 9.7-0 | Fri Nov 20 2020 | Florian Delehaye | |
| |||
| 修订 9.5-0 | Tue Aug 06 2019 | Marc Muehlfeld | |
| |||
| 修订 9.4-0 | Thu Oct 25 2018 | Marc Muehlfeld | |
| |||
| 修订 9.3-1 | Tue Apr 10 2018 | Marc Muehlfeld | |
| |||
| 修订 9.2-0 | Tue Aug 01 2017 | Petr Bokoč | |
| |||
| 修订 9.1-1 | Thu Mar 09 2017 | Petr Bokoč | |
| |||
| 修订 9.1-0 | Tue Nov 01 2016 | Petr Bokoč | |
| |||
| 修订 8.9-0 | Thu Jul 02 2015 | Tomáš Čapek | |
| |||
法律通告
2020 © Red Hat, Inc.
本文档由红帽根据 Creati ve Commons Attribution-ShareAlike 3.0 Unported License 许可。如果您发布本文档或修改的版本,则必须向 Red Hat, Inc. 提供相关内容,并提供到原始链接。如果修改了文档,则必须删除所有红帽商标。
作为本文档的许可者,红帽可能会放弃强制制执行 CC-BY-SA 第4d 条款,且不声明该条款在适用条款允许的最大限度内有效。
Red Hat、Red Hat Enterprise Linux、SVVP 徽标、红帽徽标、JBoss、OpenShift、Fedora、Infinity 商标,Red Hat, Inc. 在美国和其他国家的注册商标。
Linux® 是 Linus Torvalds 在美国和其它国家的注册商标。
Java® 是 Oracle 和/或其关系的注册商标。
XFS® 是 Silicon Graphics International Corp. 或其子公司在美国和/或其他国家的商标。
MySQL® 是 MySQL AB 在美国、美国和其他国家的注册商标。
Node.js® 是 Joyent 的官方商标。红帽与官方 Joyent Node.js 开源社区或商业项目没有正式关联。
OpenStack® Word Mark 和 OpenStack 徽标是 OpenStack Foundation 在美国及其他国家的注册商标/服务标记或商标/服务标记,可根据 OpenStack Foundation 授权使用。我们不附属于 OpenStack Foundation 或 OpenStack 社区。
所有其他商标均由其各自所有者所有。