aws alb-安全web套接字+spring引导

qvsjd97n  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(424)

环境设置:
我在aws alb(应用程序负载平衡器)后面有一个spring引导应用程序。alb被配置为通过spring引导应用程序作为在http上运行的目标向世界发送https。
接线图:
https 443->alb->http 8080->spring引导
问题是:
由于应用程序内部运行在http(8080)上,但通过负载均衡器在https上提供服务,我无法使用ws://example.com protocol t,因为浏览器中存在混合内容限制。我也不能用'wss://example.com'由于终端服务器(spring boot)通过http运行,is不接受连接。
问题是:
我找到的唯一解决方案是将最终应用程序移动到使用带有自签名证书的https。有没有其他的解决方案可以让应用程序在http上运行,但是接受wss连接?

3b6akqbq

3b6akqbq1#

将负载平衡器配置为将https流量转发到http对于websockets不起作用。相反,您必须将其配置为将ssl(安全tcp)转发到tcp。这将适用于http/https流量,因为http是tcp上的协议,而https是带有tls的http,它将允许websocket流量通过。
将elb配置为使用代理协议。使用aws cli。
首先,创建新策略:
aws elb创建负载平衡器策略--负载平衡器名称$alb\U名称
--策略名称$alb\u name-proxy-protocol --策略类型名称proxyprotocolpolicytype --策略属性attributename=proxyprotocol,attributevalue=true
其次,将其连接到负载平衡器。对示例正在侦听的每个端口运行一次:
aws elb为后端服务器设置负载平衡器策略
--负载平衡器名称$alb\u name --示例端口8080 --策略名称$alb\u name-proxy-protocol

相关问题