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)
/subsystem=elytron/client-ssl-context=modcluster-client-ssl-context:add(trust-manager=default-trust-manager)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下选项之一引用新创建的客户端 SSL 上下文:
通过设置
ssl-context来配置modcluster子系统。/subsystem=modcluster/mod-cluster-config=configuration:write-attribute(name=ssl-context, value=modcluster-client-ssl-context)
/subsystem=modcluster/mod-cluster-config=configuration:write-attribute(name=ssl-context, value=modcluster-client-ssl-context)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过定义
mod-cluster过滤器的ssl-context属性来配置undertow子系统。/subsystem=undertow/configuration=filter/mod-cluster=modcluster:write-attribute(name=ssl-context,value=modcluster-client-ssl-context)
/subsystem=undertow/configuration=filter/mod-cluster=modcluster:write-attribute(name=ssl-context,value=modcluster-client-ssl-context)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
重新加载服务器。
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
要配置 modcluster 子系统 和使用双向身份验证,还需要配置主管理器。
创建密钥存储。
/subsystem=elytron/key-store=twoWayKS:add(path=/path/to/client.keystore.jks, credential-reference={clear-text=secret},type=JKS)/subsystem=elytron/key-store=twoWayKS:add(path=/path/to/client.keystore.jks, credential-reference={clear-text=secret},type=JKS)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置密钥管理器。
/subsystem=elytron/key-manager=twoWayKM:add(key-store=twoWayKS, algorithm="SunX509", credential-reference={clear-text=secret})/subsystem=elytron/key-manager=twoWayKM:add(key-store=twoWayKS, algorithm="SunX509", credential-reference={clear-text=secret})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建客户端 SSL 上下文。
/subsystem=elytron/client-ssl-context=modcluster-client-ssl-context:add(trust-manager=default-trust-manager, key-manager=twoWayKM)
/subsystem=elytron/client-ssl-context=modcluster-client-ssl-context:add(trust-manager=default-trust-manager, key-manager=twoWayKM)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您已有客户端 SSL 上下文,您可以按照以下方法将
key-manager添加到其中:/subsystem=elytron/client-ssl-context=modcluster-client-ssl-context:write-attribute(name=key-manager, value=twoWayKM)
/subsystem=elytron/client-ssl-context=modcluster-client-ssl-context:write-attribute(name=key-manager, value=twoWayKM)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新加载服务器。
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow