¿Es posible tener WebSockets con HTTPS?
Al cambiar a HTTPS, mi WebSocket devuelve un error de seguridad y funciona perfectamente con HTTP normal.
A continuación, un fragmento;
socket = new WebSocket("ws://my_www:1235");
¿Es posible tener WebSockets con HTTPS?
Al cambiar a HTTPS, mi WebSocket devuelve un error de seguridad y funciona perfectamente con HTTP normal.
A continuación, un fragmento;
socket = new WebSocket("ws://my_www:1235");
Respuestas:
La conexión WebSocket comienza su vida con un protocolo de enlace HTTP o HTTPS. Cuando se accede a la página a través de HTTP, puede utilizar WS o WSS (WebSocket seguro: 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.
No puede usar WebSockets sobre HTTPS, pero puede usar 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 TLS desde una página HTTPS, pero lo contrario no debería ser un problema.
wss://
a ws://
. Entonces, uso wss://ws.domain.com
y apache aplico el proxy en él y redirijo la solicitud donde se está ejecutando el servidor WS. por ejemplo: ws://10.12.23.45:5641/server.php
. y sé que es una muy mala solución, aunque a mí me funciona. Agradecería su ayuda si me guiara a través de la configuración de apache. por ejemplo: donde poner el .cert
etc. gracias!
1 advertencia adicional (además de la respuesta de kanaka / peter): si usa WSS y el certificado del servidor no es aceptable para el navegador, es posible que no obtenga ningún cuadro de diálogo del navegador (como sucede con las páginas web). Esto se debe a que WebSockets se trata como un "subrecurso" y el certificado acepta / excepción de seguridad / cualquier cuadro de diálogo que no se represente para los subrecursos.
alert()
?