13.3.3. 为 Java 管理控制台启用 SSL

对证书证书证书系统nbsp 的基于证书的验证可以启用系统控制台,以便管理员必须先使用客户端证书进行身份验证,然后才能登录到证书证书系统nbsp;System Console.在启用基于证书的身份验证前,存储管理员的证书。
要在控制台中启用 SSL,请同时配置客户端和服务器。
重要
如果 CA 配置了通过管理端口进行客户端身份验证,并且该 CA 是安全域管理器,则无法配置将 CA 用于其安全域 的新 PKI 子系统。新的 PKI 实例通过 admin 端口注册到安全域 CA,但不使用客户端身份验证。如果 CA 需要客户端身份验证,则注册尝试会失败。
首先,设置证书Certificate Systemnbsp;System server 以使用 SSL 客户端验证:
  1. 使用这个系统的任何管理员存储证书。证书应该来自 CA 本身,或者从哪个 CA 签署该子系统的证书。
    1. 打开子系统控制台。
    2. 选择左侧的 "用户和组" 选项。
    3. Users 选项卡中,选择管理用户,再单击 Manage Certificates
    4. Import
    5. 粘贴到 base-64 编码的 SSL 客户端证书中,如保存在 web 浏览器中的管理员证书。
    确保客户端证书适用于 SSL 客户端身份验证;否则,服务器将不接受客户端证书,并将在 /var/log/instanceID/system 中的错误日志中发布错误消息:
    failure (14290): Error receiving connection
    SEC_ERROR_INADEQUATE_CERT_TYPE - Certificate type not approved for application.)
  2. 停止子系统。
    systemctl stop pki-tomcatd@instance_name.service
  3. 打开实例配置目录 /var/lib/pki/instance_name/subsystem_type/conf
  4. 打开文件 CS.cfg
  5. authType 参数的值从 pwd 更改为 sslclientauth
    authType=sslclientauth
  6. 保存该文件。
  7. 打开 server.xml 文件。
  8. 将 admin 接口连接器部分中的 clientAuth="false" 属性更改为 clientAuth="want "。
    <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 值表示首选客户端身份验证,但不是必需的。这样,客户端通过可轻松使用它(如控制台)的接口进行身份验证,同时仍然允许客户端验证(安全域内的其他子系统)使用常规连接进行连接。
  9. 启动子系统。
    systemctl start pki-tomcatd@instance_name.service
设置服务器后,将客户端配置为使用 SSL 客户端身份验证。
控制台必须具有对服务器 SSL 客户端身份验证的管理员证书和密钥的访问权限。控制台的默认证书和密钥数据库存储在 .redhat-idm-console 目录中。
要提供对管理员证书和密钥的访问,请从管理员的浏览器中将它们导出到 .p12 文件中,然后使用 pk12util 导入该文件,或者将浏览器的证书和密钥数据库复制到 .redhat-idm-console 目录中。(这个步骤假定证书从浏览器导出到 .p12 文件中。)
  1. 将管理员用户证书和密钥从浏览器导出到文件,如 admin.p12
  2. 打开用户的控制台目录。
    /user-directory/.redhat-idm-console
  3. 如有必要,创建新的安全数据库。
    certutil -N -d .
  4. 停止证书证书 Systemnbsp;System 实例。
    systemctl stop pki-tomcatd@instance_name.service
  5. 使用 pk12util 导入证书。
    # pk12util -i /tmp/admin.p12 -d /user-directory/.redhat-idm-console -W [p12filepassword]
    如果这个过程成功,命令会输出以下内容:
    pk12util: PKCS12 IMPORT SUCCESSFUL
  6. 从浏览器中导出发布 CA 证书的 64 位 Blob,并将其保存到类似 ca.crt 的文件。
  7. 从与 admin 用户证书关联的基本 64blob 中导入 CA 证书。
    certutil -A -d . -n ca -t CT,C,C -i ./ca.crt
  8. 启动证书证书系统nbsp;System 实例。
    systemctl start pki-tomcatd@instance_name.service
  9. 启动控制台;现在,它会提示输入证书。