Как я могу подключить через ssl к websocket, обслуживаемому GlassFish на экземпляре Amazon AWS EC2 через ELB?
Я использую Tyrus 1.8.1 в предварительном выпуске GlassFish 4.1 b13 в качестве моей реализации websocket.
Порт 8080 не защищен, а порт 8181 защищен с помощью ssl.
- Имя ELB dns: elb.xyz.com
- Имя EC2 dns: ec2.xyz.com
- путь к websocket:/web/socket
Я успешно использовал ws и wss для непосредственного подключения к моему экземпляру EC2 (в обход моего ELB). то есть работают оба следующих URL-адреса:
- WS://ec2.xyz.com: 8080/веб/розетка
- WSS://ec2.xyz.com: 8181/веб/розетка
Я успешно использовал ws (non-ssl) поверх своего ELB с помощью прослушивателя tcp 80 > tcp 8080. т.е. работает следующий URL:
- WS://elb.xyz.com: 80/веб/розетка
Я, однако, не смог найти способ использовать wss, хотя мой ELB.
Я пробовал много вещей.
Я предполагаю, что наиболее вероятным способом заставить wss работать через мой ELB было бы создание слушателя tcp 8181 > tcp 8181 на моем ELB с включенным протоколом прокси и использование следующего URL:
- WSS://elb.xyz.com: 8181/веб/розетка
К сожалению, это не работает. Я предполагаю, что мне, возможно, придется включить прокси-протокол на стеклянную рыбку, но я не смог узнать, как это сделать (или, если это возможно, или если это необходимо для работы wss над моим ELB).
Другой вариант может заключаться в том, чтобы каким-то образом ws или wss запускались через соединение ssl, которое было завершено на ELB, и чтобы он продолжал оставаться необработанным для стеклянной рыбы, используя прослушиватель ssl > tcp 8080. Для меня это тоже не сработало, но, возможно, некоторые настройки были неправильными.
Кто-нибудь имеет какие-либо изменения в моих двух вышеупомянутых испытаниях. Или у кого-нибудь есть другие предложения?
Спасибо.