Come posso connettermi su ssl a un web socket servito da GlassFish su un'istanza Amazon AWS EC2 tramite un ELB?WebSockets: wss dal client all'istanza Amazon AWS EC2 tramite ELB
Sto usando Tyrus 1.8.1 in GlassFish 4.1 b13 pre-release come implementazione websocket.
La porta 8080 non è protetta e la porta 8181 è protetta con ssl.
- ELB nome DNS: elb.xyz.com
- EC2 nome DNS: ec2.xyz.com percorso
- websocket:/web/presa
Ho usato con successo entrambi i ws & wss per connettersi direttamente alla mia istanza EC2 (bypassando il mio ELB). cioè entrambe le seguenti URL funzionano:
- WS: //ec2.xyz.com: 8080/web/presa
- wss: //ec2.xyz.com: 8181/web/presa
Ho usato con successo ws (non-ssl) sul mio ELB utilizzando un listener tcp 80> tcp 8080. vale a dire il seguente URL funziona:
- WS: //elb.xyz.com: 80/web/presa
ho, tuttavia, non sono riusciti a trovare un modo per utilizzare WSS se la mia ELB.
Ho provato molte cose.
Si considera che il modo più probabile di ottenere WSS a lavorare attraverso il mio ELB sarebbe quello di creare un ascoltatore tcp 8181> TCP 8181 sul mio ELB con protocollo proxy abilitato e utilizzare il seguente URL:
- WSS : //elb.xyz.com: 8181/web/socket
Sfortunatamente, questo non funziona. Immagino che potrei dover abilitare il protocollo proxy su glassfish, ma non sono stato in grado di scoprire come farlo (o se è possibile, o se è necessario che wss funzioni sul mio ELB).
Un'altra opzione potrebbe essere in qualche modo avere ws o wss eseguire su una connessione ssl che è terminata sull'ELB, e farlo continuare senza protezione su glassfish, usando un listener ssl> tcp 8080. Ciò non ha funzionato nemmeno per me, ma forse alcune impostazioni non erano corrette.
Qualcuno ha qualche modifica alle mie due prove di cui sopra. O qualcuno ha qualche altro suggerimento?
Grazie.
Intendevo "al contrario di HTTPS solo" – guillaumepiot
Grazie, TCP protetto invece di HTTPS ha fatto il trucco! –
"SSL (Secure TCP) 443 TCP 80" funziona anche –