15.3. 打开子系统控制台和服务
每个子系统具有不同的接口来访问不同的用户类型。除 TKS 外,所有子系统都有某种类型的用于代理、管理员或最终用户(或全部三个)的网页。此外,CA、KRA、OCSP 和 TKS 都有一个基于 Java 的控制台,必须安装到服务器上,以执行管理任务来管理子系统本身。
可以自定义子系统基于 Web 的服务页面的外观和范围,从而更好地与组织的现有网站集成。请参阅 红帽认证系统规划、安装和部署指南。
15.3.1. 查找子系统 Web 服务页面
CA、KRA、OCSP、TKS 和 TPS 子系统具有用于代理、常规用户和管理员的网页。可以通过通过子系统的安全最终用户端口打开到子系统主机的 URL 来访问这些 Web 服务菜单。例如,对于 CA:
https://server.example.com:8443/ca/services
https://server.example.com:8443/ca/services
每个子系统的主要 Web 服务页面包含可用服务页面列表;下表中概述了这些页面。要专门访问任何服务,请访问适当的端口,并将适当的目录附加到 URL。例如,要访问 CA 的最终实体(普通用户)Web 服务:
https://server.example.com:8443/ca/ee/ca
https://server.example.com:8443/ca/ee/ca
如果正确配置了 DNS,则可以使用 IPv4 或 IPv6 地址连接到服务页面。例如:
https://1.2.3.4:8443/ca/services https://[00:00:00:00:123:456:789:00:]:8443/ca/services
https://1.2.3.4:8443/ca/services
https://[00:00:00:00:123:456:789:00:]:8443/ca/services
有些子系统接口需要客户端身份验证才能访问它们,通常是与代理或管理员角色关联的接口。其他接口,即使那些在安全(SSL 连接)上运行的接口也不需要客户端身份验证。其中一些接口(如最终实体服务)可以配置为需要客户端身份验证,但其他接口无法配置为支持客户端身份验证。下表介绍了这些区别。
任何人都可以访问子系统的最终用户页面,但访问代理或管理员网页都需要在 Web 浏览器中发布并安装代理或管理员证书,或者对 Web 服务进行身份验证会失败。
用于 SSL | 用于带有客户端身份验证值的 Client AuthenticationServices 可以被重新配置为需要客户端身份验证。没有 Yes 或 No 值的服务无法配置为使用客户端身份验证。 | Web Services | Web 服务位置 |
---|---|---|---|
| 否 | 结束实体 | |
ca/ee/ca/ | 是 | 否 | 结束实体 |
ca/ee/ca | 是 | 是 | 代理 |
ca/agent/ca | 是 | 否 | 服务 |
ca/services | 是 | 否 | 控制台(Console) |
pkiconsole https://host:port/ca |
| 是 | 是 |
代理 | kra/agent/kra | 是 | 否 |
服务 | kra/services | 是 | 否 |
控制台(Console) | pkiconsole https://host:port/kra |
| 是 |
是 | 代理 | ocsp/agent/ocsp | 是 |
否 | 服务 | ocsp/services | 是 |
否 | 控制台(Console) | pkiconsole https://host:port/ocsp |
|
是 | 否 | 服务 | tks/services |
是 | 否 | 控制台(Console) | pkiconsole https://host:port/tks |
| 是 | 服务 |
15.3.1.1. 启动证书系统管理控制台
pkiconsole
已被弃用。
控制台通过 pkiconsole
命令通过其 SSL 端口连接到子系统实例来打开。这个命令的格式如下:
pkiconsole https://server.example.com:admin_port/subsystem_type
pkiconsole https://server.example.com:admin_port/subsystem_type
subsystem_type 可以是 ca
、kra
、ocsp
或 tks
。例如,这会打开 KRA 控制台:
pkiconsole https://server.example.com:8443/kra
pkiconsole https://server.example.com:8443/kra
如果正确配置了 DNS,则可以使用 IPv4 或 IPv6 地址连接到控制台。例如:
pkiconsole https://1.2.3.4:8443/ca pkiconsole https://[00:00:00:00:123:456:789:00:]:8443/ca
pkiconsole https://1.2.3.4:8443/ca
pkiconsole https://[00:00:00:00:123:456:789:00:]:8443/ca
15.3.2. 为 Java 管理控制台启用 SSL
可以启用对证书系统控制台的基于证书的身份验证,以便管理员必须在登录到证书系统控制台之前使用客户端证书进行身份验证。在启用基于证书的身份验证前存储管理员的证书。
要在控制台中启用 SSL,请同时配置客户端和服务器。
如果配置了通过 admin 端口进行客户端身份验证的 CA,并且该 CA 是安全域管理器,则无法 配置新的 PKI 子系统,它将该 CA 用于其安全域。新的 PKI 实例通过管理端口将自身注册到安全域 CA,但不使用客户端身份验证。如果 CA 需要客户端身份验证,则注册尝试会失败。
首先,将证书系统服务器设置为使用 SSL 客户端身份验证:
使用此系统为任何管理员存储证书。证书应来自 CA 本身,或从哪个 CA 为子系统签名证书。
- 打开子系统控制台。
- 选择左侧的 Users and Groups 选项。
- 在 Users 选项卡中,选择管理用户,然后单击 。
- 点 。
粘贴到 base-64 编码的 SSL 客户端证书,如存储在 Web 浏览器中的管理员证书。
确保客户端证书适用于 SSL 客户端身份验证;否则,服务器不接受客户端证书,并将在
/var/log/ <instanceID> /system
中出错信息:Copy to Clipboard Copied! Toggle word wrap Toggle overflow failure (14290): Error receiving connection SEC_ERROR_INADEQUATE_CERT_TYPE - Certificate type not approved for application.)
failure (14290): Error receiving connection SEC_ERROR_INADEQUATE_CERT_TYPE - Certificate type not approved for application.)
停止子系统。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server stop instance_name
# pki-server stop instance_name
-
打开实例配置目录
/var/lib/pki/ instance_name/subsystem_type/conf
。 -
打开文件
CS.cfg
。 将
authType
参数的值从pwd
改为sslclientauth
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow authType=sslclientauth
authType=sslclientauth
- 保存该文件。
-
打开
server.xml
文件。 在 admin 接口连接器部分将
clientAuth="false"
属性改为clientAuth="want"
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow <Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="want" sslProtocol="SSL" ..... serverCertFile="/var/lib/pki/pki-tomcat/conf/serverCertNick.conf" passwordFile="/var/lib/pki/pki-tomcat/conf/password.conf" passwordClass="org.apache.tomcat.util.net.jss.PlainPasswordFile" certdbDir="/var/lib/pki/pki-tomcat/alias"/>
<Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="want" sslProtocol="SSL" ..... serverCertFile="/var/lib/pki/pki-tomcat/conf/serverCertNick.conf" passwordFile="/var/lib/pki/pki-tomcat/conf/password.conf" passwordClass="org.apache.tomcat.util.net.jss.PlainPasswordFile" certdbDir="/var/lib/pki/pki-tomcat/alias"/>
want
值表示首选客户端身份验证,但不是必需的。这允许客户端通过可轻松使用它的接口进行身份验证(如控制台),同时仍允许不支持客户端身份验证(安全域中的其他子系统)使用常规连接进行连接。启动子系统。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server start instance_name
pki-server start instance_name
设置服务器后,将客户端配置为使用 SSL 客户端身份验证。
控制台必须有权访问用于向服务器 SSL 客户端身份验证的管理员证书和密钥。控制台的默认证书和密钥数据库存储在 .redhat-idm-console
目录中。
要提供对管理员证书和密钥的访问,可以从管理员的浏览器导出至 .p12
文件,然后使用 pk12util
将其导入,或者将浏览器的证书和密钥数据库复制到 .redhat-idm-console
目录中。(这个过程假设证书从浏览器导出为 .p12
文件。)
-
将管理员用户证书和密钥从浏览器导出到文件,如
admin.p12
。 打开用户的控制台目录。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /user-directory/.redhat-idm-console
/user-directory/.redhat-idm-console
如有必要,创建新的安全数据库。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -N -d .
certutil -N -d .
停止证书系统实例。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server stop <instance_name>
pki-server stop <instance_name>
使用
pk12util
导入证书。Copy to Clipboard Copied! Toggle word wrap Toggle overflow pk12util -i /tmp/admin.p12 -d /user-directory/.redhat-idm-console -W [p12filepassword]
# pk12util -i /tmp/admin.p12 -d /user-directory/.redhat-idm-console -W [p12filepassword]
如果过程成功,命令会输出以下内容:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pk12util: PKCS12 IMPORT SUCCESSFUL
pk12util: PKCS12 IMPORT SUCCESSFUL
-
从浏览器中导出发布 CA 证书的 64 位 blob,并将它保存到
ca.crt
等文件中。 从与 admin 用户证书关联的基本 64blob 中导入 CA 证书。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow certutil -A -d . -n ca -t CT,C,C -i ./ca.crt
certutil -A -d . -n ca -t CT,C,C -i ./ca.crt
启动证书系统实例。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pki-server start <instance_name>
pki-server start <instance_name>
- 启动控制台:现在,它会提示输入证书。