15.3. 配置 IIOP 以通过 Elytron 子系统使用 SSL/TLS

您可以将 iiop-openjdk 子系统配置为使用 SSL/TLS 来保护客户端和服务器之间的通信。elytron 子系统以及旧版 安全 子系统为 iiop-openjdk 子系统以及 JBoss EAP 中的其他子系统配置 SSL/TLS 所需的组件。使用以下步骤将 iiop-openjdk 子系统配置为使用 elytron 子系统 SSL/TLS。

  1. 使用以下管理 CLI 命令,在 iiop-openjdk 子系统中显示当前传统的 SSL/TLS 配置:

    /subsystem=iiop-openjdk:read-attribute(name=security-domain)
    {
        "outcome" => "success",
        "result" => "iiopSSLSecurityDomain"
    }

    iiop-openjdk 子系统必须使用传统 安全 子系统或 elytron 子系统 SSL/TLS。您不能同时使用这两者。以上命令显示 iiop-openjdk 子系统正在使用传统安全域来处理 SSL/TLS。在将 iiop-openjdk 子系统配置为使用 SSL/TLS 的 elytron 子系统之前,您需要删除此引用:

    /subsystem=iiop-openjdk:undefine-attribute(name=security-realm)

    如果未定义 iiop-openjdk 中的 security- domain 属性,您可以继续下一步。

  2. 创建 server-ssl-context

    要将 SSL/TLS 与 iiop-openjdk 子系统结合使用,您需要定义 server-ssl-context。JBoss EAP 将 SSL/TLS 连接作为服务器时,使用 server-ssl-context 提供的配置。您可以使用 Elytron Subsystem 了解如何 配置服务器安全 指南中的 Elytron Subsystem 在为应用启用单向 SSL/TLS 中创建 server- ssl-context

  3. 创建 client-ssl-context

    要将 SSL/TLS 与 iiop-openjdk 子系统结合使用,您需要定义 client-ssl-context。JBoss EAP 在将 SSL/TLS 连接作为客户端时,使用 client-ssl-context 提供的配置。您可以在 如何配置服务器安全 指南 中的使用 client-ssl-context 中找到有关创建客户端-ssl-context 的更多详细信息。

  4. 配置 iiop-openjdk 子系统,以使用 client-ssl-contextserver-ssl-context

    示例:设置 client-ssl-contextserver-ssl-context

    batch
    
    /subsystem=iiop-openjdk:write-attribute(name=client-ssl-context,value=iiopClientSSC)
    
    /subsystem=iiop-openjdk:write-attribute(name=server-ssl-context,value=iiopServerSSC)
    
    run-batch
    
    reload

  5. iiop-openjdk 子系统配置与 和 的连接。

    您可以通过调整以下属性来指示在连接到 iiop-openjdk 子系统时是否需要 SSL/TLS 连接:

    • 要在 iiop-openjdk 子系统中启用对 SSL 的支持,可将 support-ssl 设置为 true。默认值为 false
    • 要要求从 iiop-openjdk 子系统进行 SSL/TLS 连接,请将 client-requires-ssl 设置为 true。默认值为 false
    • 要要求 SSL/TLS 连接到 iiop-openjdk 子系统,请将 server-requires-ssl 设置为 true。默认值为 false。请注意,此设置为 true 将阻止尝试连接到非 SSL IIOP 套接字。
    • 若要调整 socket-binding,请将 ssl-socket-binding 设置为所需的绑定:默认为 iiop-ssl

    示例:将 SSL/TLS 连接设置为 IIOP 以及从 IIOP 设为 Required

    /subsystem=iiop-openjdk:write-attribute(name=support-ssl,value=true)
    
    /subsystem=iiop-openjdk:write-attribute(name=client-requires-ssl,value=true)
    
    /subsystem=iiop-openjdk:write-attribute(name=server-requires-ssl,value=true)
    
    /subsystem=iiop-openjdk:write-attribute(name=ssl-socket-binding,value=iiop-ssl)
    
    reload