1.8. Elytron 与 ModCluster 子系统集成

elytron 子系统公开的其中一个安全功能是客户端 ssl-context,可用于配置 modcluster 子系统以使用 SSL/TLS 与负载平衡器通信。

在保护应用服务器和负载均衡器之间的通信时,您需要定义一个客户端 ssl-context,以便:

  • 定义保存证书链的信任存储,该链将用于验证负载均衡器的证书。
  • 定义信任管理器,针对负载均衡器的证书执行验证。

1.8.1. 定义客户端 SSL 上下文并配置 ModCluster subsystem

以下流程要求配置信任存储和信任管理器。有关创建这些的详情,请参阅创建 Elytron TruststoreCreate a Elytron Trust Manager

  1. 创建客户端 SSL 上下文。

    在使用 SSL/TLS 连接到负载均衡器时,modcluster 子系统将使用此 SSL 上下文:

    /subsystem=elytron/client-ssl-context=modcluster-client-ssl-context:add(trust-manager=default-trust-manager)
  2. 使用以下选项之一引用新创建的客户端 SSL 上下文:

    • 通过设置 ssl-context 来配置 modcluster 子系统。

      /subsystem=modcluster/mod-cluster-config=configuration:write-attribute(name=ssl-context, value=modcluster-client-ssl-context)
    • 通过定义 mod-cluster 过滤器的 ssl-context 属性来配置 undertow 子系统。

      /subsystem=undertow/configuration=filter/mod-cluster=modcluster:write-attribute(name=ssl-context,value=modcluster-client-ssl-context)
  3. 重新加载服务器。

    reload

要配置 modcluster 子系统 和使用双向身份验证,还需要配置主管理器。

  1. 创建密钥存储。

    /subsystem=elytron/key-store=twoWayKS:add(path=/path/to/client.keystore.jks, credential-reference={clear-text=secret},type=JKS)
  2. 配置密钥管理器。

    /subsystem=elytron/key-manager=twoWayKM:add(key-store=twoWayKS, algorithm="SunX509", credential-reference={clear-text=secret})
  3. 创建客户端 SSL 上下文。

    /subsystem=elytron/client-ssl-context=modcluster-client-ssl-context:add(trust-manager=default-trust-manager, key-manager=twoWayKM)
    注意

    如果您已有客户端 SSL 上下文,您可以按照以下方法将 key-manager 添加到其中:

    /subsystem=elytron/client-ssl-context=modcluster-client-ssl-context:write-attribute(name=key-manager, value=twoWayKM)
  4. 重新加载服务器。

    reload