1.8. Elytron 与 ModCluster 子系统集成
elytron
子系统公开的其中一个安全功能是客户端 ssl-context
,可用于配置 modcluster
子系统以使用 SSL/TLS 与负载平衡器通信。
在保护应用服务器和负载均衡器之间的通信时,您需要定义一个客户端 ssl-context
,以便:
- 定义保存证书链的信任存储,该链将用于验证负载均衡器的证书。
- 定义信任管理器,针对负载均衡器的证书执行验证。
1.8.1. 定义客户端 SSL 上下文并配置 ModCluster subsystem
以下流程要求配置信任存储和信任管理器。有关创建这些的详情,请参阅创建 Elytron Truststore 和 Create a Elytron Trust Manager。
创建客户端 SSL 上下文。
在使用 SSL/TLS 连接到负载均衡器时,
modcluster
子系统将使用此 SSL 上下文:/subsystem=elytron/client-ssl-context=modcluster-client-ssl-context:add(trust-manager=default-trust-manager)
使用以下选项之一引用新创建的客户端 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)
重新加载服务器。
reload
要配置 modcluster
子系统 和使用双向身份验证,还需要配置主管理器。
创建密钥存储。
/subsystem=elytron/key-store=twoWayKS:add(path=/path/to/client.keystore.jks, credential-reference={clear-text=secret},type=JKS)
配置密钥管理器。
/subsystem=elytron/key-manager=twoWayKM:add(key-store=twoWayKS, algorithm="SunX509", credential-reference={clear-text=secret})
创建客户端 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)
重新加载服务器。
reload