1.10.3. 使用 Elytron 配置域控制器和主机控制器之间的 SSL/TLS


重要

当您将 SSL/TLS 配置为在受管域中的 JBoss EAP 实例之间使用时,每个实例都可以具有客户端或服务器角色,具体取决于交互。这包括所有主机控制器和域控制器。因此,建议您在端点之间设置双向 SSL/TLS。

您可以在受管域中配置 JBoss EAP 实例,以便在主域控制器和主机控制器之间互相通信时使用 SSL/TLS。要使用 Elytron 来完成此操作,请使用以下步骤:

  1. 生成和配置所有必要的证书和密钥存储。

    为了在端点之间设置双向 SSL/TLS,您需要为主域控制器和每一主机控制器生成和配置证书和密钥存储。您还需要将主控域控制器的证书导入到每一主机控制器的密钥存储中,并将每一主机控制器的证书导入到主控域控制器的密钥存储中。使用 Elytron 子系统的管理接口启用双向 SSL/TLS 中涵盖了此流程的细节。

  2. 在主域控制器上添加用户。

    用户需要在主域控制器上添加,供从控制器用于身份验证。如果您使用基于文件的默认用户和组身份验证机制,可以通过运行 EAP_HOME/bin/adduser.sh 来完成此操作。出现提示时,添加用户名、密码和其他配置。

    add-user 实用程序可用于管理 ManagementRealm 中的用户和 ApplicationReal m 中的用户

    注意

    服务器将缓存内存中属性文件的内容。但是,服务器会检查每个身份验证请求上属性文件的修改时间,如果时间已更新,则重新加载。这意味着 add-user 实用程序进行的所有更改都立即应用到任何正在运行的服务器。

    从控制器尝试使用 HTTP 接口进行身份验证。如果 HTTP 接口已通过 ManagementRealm Elytron 安全域进行保护,那么您需要向 ManagementRealm 添加用户供从控制器使用。

    注意

    管理用户的默认域名称为 ManagementRealm。当 add-user 实用程序提示输入域名时,只需接受默认设置,除非您已切换到其他域。

    以下示例假定使用密码 password1! 的用户 设备已添加到 ManagementRealm

  3. 将主域控制器配置为使用 SSL/TLS。

    以下命令为服务器密钥存储和信任存储配置域控制器 key- store、key-managertrusted-manager 和 server-ssl-context

    /host=master/subsystem=elytron/key-store=twoWayKS:add(path=/path/to/server.keystore.jks,credential-reference={clear-text=secret},type=JKS)
    
    /host=master/subsystem=elytron/key-store=twoWayTS:add(path=/path/to/server.truststore.jks,credential-reference={clear-text=secret},type=JKS)
    
    /host=master/subsystem=elytron/key-manager=twoWayKM:add(key-store=twoWayKS,algorithm="SunX509",credential-reference={clear-text=secret})
    
    /host=master/subsystem=elytron/trust-manager=twoWayTM:add(key-store=twoWayTS,algorithm="SunX509")
    
    /host=master/subsystem=elytron/server-ssl-context=twoWaySSC:add(key-manager=twoWayKM,protocols=["TLSv1.2"],trust-manager=twoWayTM,want-client-auth=true,need-client-auth=true)
    
    /host=master/core-service=management/management-interface=http-interface:write-attribute(name=ssl-context, value=twoWaySSC)
    Copy to Clipboard Toggle word wrap
    重要

    您需要了解您使用的 JDK 提供了哪些关键管理器算法。例如 ,使用 SunJSSE 的 JDK 提供 PKIXSunX509 算法。您还需要确定您要支持的 HTTPS 协议。以上示例命令使用 TLSv1.2。您可以使用 cipher-suite-filter 参数指定允许哪些密码套件,以及使用-cipher-suites-order 参数来执行服务器密码套件顺序。使用-cipher-suites-order 属性默认设置为 true。这与旧 的安全 子系统行为不同,后者默认为遵从客户端密码套件顺序。

  4. 在每个从属主机控制器上配置身份验证上下文和域控制器位置。

    以下示例配置假定 localhost 上存在域控制器:确保为您的环境指定正确的管理用户、密码和域控制器位置。

    /host=slave1/subsystem=elytron/authentication-context=slaveHostSSLContext:add()
    
    /host=slave1/subsystem=elytron/authentication-configuration=slaveHostSSLConfiguration:add()
    
    /host=slave1/subsystem=elytron/authentication-configuration=slaveHostSSLConfiguration:write-attribute(name=sasl-mechanism-selector,value=DIGEST-MD5)
    
    /host=slave1/subsystem=elytron/authentication-configuration=slaveHostSSLConfiguration:write-attribute(name=authentication-name,value=slave)
    
    /host=slave1/subsystem=elytron/authentication-configuration=slaveHostSSLConfiguration:write-attribute(name=realm,value=ManagementRealm)
    
    /host=slave1/subsystem=elytron/authentication-configuration=slaveHostSSLConfiguration:write-attribute(name=credential-reference,value={clear-text=password1!})
    
    /host=slave1/subsystem=elytron/authentication-context=slaveHostSSLContext:write-attribute(name=match-rules,value=[{match-host=localhost,authentication-configuration=slaveHostSSLConfiguration}]
    
    /host=slave1:write-remote-domain-controller(host=localhost,port=9990,protocol=remote,authentication-context=slaveHostSSLContext)
    Copy to Clipboard Toggle word wrap
  5. 将每个从属主机控制器配置为使用 SSL/TLS。

    以下命令配置从属主机控制器的 key-store、key -manager、trusted-managerclient-ssl-context (用于服务器密钥存储和信任存储)以及 authentication-context

    以下示例配置假定 localhost 上存在域控制器:确保为您的环境指定正确的域控制器位置。

    /host=slave1/subsystem=elytron/key-store=twoWayKS:add(path=/path/to/client.keystore.jks,credential-reference={clear-text=secret},type=JKS)
    
    /host=slave1/subsystem=elytron/key-store=twoWayTS:add(path=/path/to/client.truststore.jks,credential-reference={clear-text=secret},type=JKS)
    
    /host=slave1/subsystem=elytron/key-manager=twoWayKM:add(key-store=twoWayKS,algorithm="SunX509",credential-reference={clear-text=secret})
    
    /host=slave1/subsystem=elytron/trust-manager=twoWayTM:add(key-store=twoWayTS,algorithm="SunX509")
    
    /host=slave1/subsystem=elytron/client-ssl-context=twoWayCSC:add(key-manager=twoWayKM,protocols=["TLSv1.2"],trust-manager=twoWayTM)
    
    /host=slave1/subsystem=elytron/authentication-context=slaveHostSSLContext:write-attribute(name=match-rules,value=[{match-host=localhost,authentication-configuration=slaveHostSSLConfiguration,ssl-context=twoWayCSC}])
    Copy to Clipboard Toggle word wrap
  6. 重新加载受管域中的所有 JBoss EAP 主机。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat