1.7. Elytron 与 ModCluster 子系统集成
elytron 子系统公开的其中一个安全功能是客户端 ssl-context,可用于配置 modcluster 子系统以使用 SSL/TLS 与负载平衡器通信。
在保护应用服务器和负载均衡器之间的通信时,您需要定义客户端 ssl-context 以便:
- 定义存放证书链的信任存储,用于验证负载均衡器的证书。
- 定义信任管理器,以针对负载均衡器的证书执行验证。
1.7.1. 定义客户端 SSL 上下文和配置 ModCluster 子系统 复制链接链接已复制到粘贴板!
以下流程要求配置信任存储和信任管理器。有关创建这些镜像的详情,请参阅 创建 Elytron Truststore 和 创建 Elytron Trust Manager。
创建客户端 SSL 上下文。
在使用 SSL/TLS 连接到负载平衡器时,mod
cluster子系统将使用此 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