Es posible que tengas un sistema de chat, de notificaciones o de algún otro tipo funcionando a través de websockets de PHP y javascript, pero si en algún momento debes  implantar SSL en tu sitio web el navegador te va a advertir de que no se puede conectar con el websocket a  ya que este no trabaja a través de ssl.

 

Para que el navegador entienda que estamos trabajando con un websocket seguro (SSL) el protocolo debe ser: wss en lugar de ws

Pongamos un ejemplo:

var wsUri = "ws://dominio.es:9001/miSocket.php";
websocket = new WebSocket(wsUri);
websocket.onopen = function(ev) { 
...

debería cambiarse a:

var wsUri = "wss://dominio.es:9001/miSocket.php";
websocket = new WebSocket(wsUri);
websocket.onopen = function(ev) {
...

Pero esto no es tan fácil como parece ya que nuestro servidor de websockets debería de aceptar conexiones SSL

Lo que debemos hacer es lo siguiente si tenemos Apache 2.4 o superior es “engañar” a nuestro navegador

    1. Agregar a nuestro apache
    2. Añadir la siguiente linea a nuestro httpd.conf de apache
      ProxyPass /webSocketSeguro/ ws://diminio.es:9001/
    3. Configurar nuestro sitio web para que conecte a través de wss a /webScoketSeguro/ Apache será el encargado de redirigir a nuestro webSocket sin ssl de forma transparente para el cliente.
var wsUri = "wss://dominio.es/webScoketSeguro/miSocket.php";
websocket = new WebSocket(wsUri);
websocket.onopen = function(ev) {
...

Espero que os funcione

Websocket php HTML5 Javascript sobre ssl

Deja un comentario

A %d blogueros les gusta esto: