¿Es posible tener WebSockets con https? Cuando se cambia a https, mi WebSocket devuelve un error de seguridad y funciona perfectamente con HTTP normal ...html5 Websocket con SSL
socket = new WebSocket("ws://my_www:1235");
Gracias
¿Es posible tener WebSockets con https? Cuando se cambia a https, mi WebSocket devuelve un error de seguridad y funciona perfectamente con HTTP normal ...html5 Websocket con SSL
socket = new WebSocket("ws://my_www:1235");
Gracias
La conexión WebSocket comienza su vida útil con un protocolo de enlace HTTP o HTTPS. Cuando se accede a la página a través de HTTP, puede usar WS o WSS (WebSocket secure: WS sobre TLS). Sin embargo, cuando su página se carga a través de HTTPS, solo puede usar WSS: los navegadores no permiten "degradar" la seguridad.
eso es lo que tengo, pero me di cuenta de que el servidor de socket AIR que estoy usando no es seguro, tengo que volver a escribir para usar flash.net.SecureSocket ... – Eric
Flash también tiene serios problemas ... ¿Está construyendo un servidor WebSocket (si es así, por qué), o está construyendo una aplicación? –
Tengo un servidor de socket AIR que funciona sí. – Eric
No puede utilizar WebSockets a través de HTTPS, pero se puede utilizar WebSockets sobre TLS (HTTPS es HTTP sobre TLS). Simplemente use "wss: //" en el URI.
Creo que la versión reciente de Firefox no le permitirá usar WebSockets que no sean de TLS desde una página HTTPS, pero lo contrario no debería ser un problema.
Entonces, ¿cuál es la solución? Tengo un servidor WS corriendo por http ahora compré un SSL y el navegador no más me permite conectarme con WS. Cambié WS a WSS: // y ahora no se está conectando con WebSocket – muaaz
@muaaz, su servidor WebSocket debería ejecutarse en modo WSS y preferiblemente cargado con las mismas claves/certificaciones SSL que su servidor web que está sirviendo a sus páginas web de origen que están intentando para conectarse al servidor websocket. – kanaka
Gracias. Por cierto, acabo de resolverlo mediante Proxying (usando apache) la solicitud de 'wss: //' a 'ws: //'. Por lo tanto, uso 'wss: // ws.domain.com' y apache aplique el proxy en él y redirija la solicitud donde se está ejecutando el servidor WS. e.g: 'ws: //10.12.23.45: 5641/server.php'. y sé que es una solución muy mala, aunque funciona para mí. Agradecería su ayuda si me guía a través de la configuración de Apache. por ejemplo: dónde poner el '.cert' etc. ¡gracias! – muaaz
1 advertencia adicional (además de la respuesta de kanaka/peter): si utiliza WSS, y el certificado del servidor no es aceptable para el navegador, no puede obtener ningún cuadro de diálogo representado (como ocurre con las páginas web) Esto se debe a que WebSockets se trata como un llamado "sub-recurso", y los diálogos de aceptación/excepción de seguridad/lo que sea no se representan para subrecursos.
¿Incluso si es el mismo certificado que el usado para HTTPS? – vekah
¿Qué quiere decir con "diálogo procesado por el navegador"? Me gusta 'alert()'? –
Cuadros de diálogo que se originan originalmente en el navegador (no en una página). Al igual que "este certificado no es válido, ¿quieres continuar?" – oberstet
mi mal, me di cuenta de que el servidor de socket AIR que estoy usando no es seguro, tengo que volver a escribir para usar flash.net.SecureSocket ... – Eric