Les WebSockets: wss de client d'Amazon AWS EC2 exemple par l'intermédiaire d'ELB
Comment puis-je me connecter sur ssl pour un websocket servi par GlassFish sur Amazon AWS EC2 exemple au moyen d'un ELB?
Je suis à l'aide de Tyr 1.8.1 dans GlassFish 4.1 b13 pré-version que mon websocket mise en œuvre.
Le Port 8080 est pas garantie, et le port 8181 est sécurisé par le protocole ssl.
- ELB nom dns: elb.xyz.com
- EC2 nom dns: ec2.xyz.com
- websocket path: /web/socket
J'ai utilisé avec succès les deux ws & wss pour se connecter directement à mon instance EC2 (sans passer par mon ELB). c'est à dire à la fois de l'url ci-après travaux:
- ws://ec2.xyz.com:8080/web/socket
- wss://ec2.xyz.com:8181/web/socket
J'ai utilisé avec succès ws (non ssl) sur mon ELB à l'aide d'un port tcp 80 > tcp 8080 port d'écoute. c'est à dire l'url suivante fonctionne:
- ws://elb.xyz.com:80/web/socket
Je n'ai pas, cependant, été en mesure de trouver un moyen d'utiliser wss si mon ELB.
J'ai essayé beaucoup de choses.
Je suppose que la voie la plus probable de se wss à travailler par le biais de mon ELB serait de créer un tcp 8181 > tcp 8181 d'écoute sur mon ELB avec proxy protocole activé et utilisez l'url suivante:
- wss://elb.xyz.com:8181/web/socket
Malheureusement, cela ne fonctionne pas. Je suppose que je pourrais avoir à activer le proxy protocole sur glassfish, mais je n'ai pas été en mesure de savoir comment faire (ou si c'est possible, ou si elle est nécessaire pour wss pour travailler mon ELB).
Une autre option pourrait être d'une certaine façon ws ou wss exécuter sur une connexion ssl c'est terminé sur le ELB, et de continuer non garantis pour glassfish, en utilisant ssl > tcp 8080 port d'écoute. Cela ne fonctionne pas pour moi non plus, mais peut-être que certains paramètre est incorrect.
Quelqu'un aurait-il des modifications à mon deux essais. Ou quelqu'un a d'autres suggestions?
Grâce.
Vous devez vous connecter pour publier un commentaire.
J'ai eu un semblable de l'installation et à l'origine de la configuration de mon ELB auditeurs comme suit:
Bien que cela a bien fonctionné pour le site lui-même, la connexion websocket a échoué. Dans l'écouteur, vous avez besoin pour permettre à tous de sécuriser la connexion TCP, par opposition à seulement SSL pour permettre wss passer ainsi:
Je voudrais également vous recommandons d'augmenter le délai d'Inactivité de l'ELB.
J'ai récemment activé wss entre mon navigateur et un EC2 Node.js exemple.
Il y a 2 choses à prendre en compte:
Il n'est évidemment pas la solution ultime, puisque le délai d'attente est toujours là, mais 1 heure est probablement assez bon pour ce que nous avons l'habitude de le faire.
espérons que cette aide