RTCMapping: comunicación segura


 

Vamos a explicar brevemente como configurar/implementar la comunicación segura vía https, entre las piezas de RTCMapping.

RTCMapping se compone de una parte cliente (el SIG) y una parte servidor (el servicio que facilita la comunicación en tiempo real). La demo desplegada aquí, no está habilitada para una comunicación segura bajo https. No obstante se puede prepara el código fuente, para realizar un despliegue donde quede habilitado https, y las comunicaciones sean cifradas (y seguras). Esta es la propuesta que hizo @gentooza, en un issue del proyecto.

Como se puede leer en el issue, supo encontrar la solución, la cual exponemos a continuación:

  1. Se requiere de un certificado digital:

    Se crea un certificado con Let's encrypt.
    El certificado generado es del usuario root y con permisos imposibles para el usuario que ejecuta el servidor. (600)

  2. Preparamos la ubicación del certificado:

    Copiamos su privkey y fullchain a la carpeta de la aplicación servidor de RTCMapping, y cambiamos el propietario al usuario que ejecuta la aplicación servidor.

  3. Un poquito de código.

    Cambiamos el código de la aplicación servidor a este, donde cargamos el privkey y el fullchain.

var fs = require('fs');
var app = require('express')();

var privateKey  = fs.readFileSync('xxxxxxxxx/rtcm-server/privkey.pem', 'utf8');
var certificate = fs.readFileSync('xxxxxxxxxx/rtcm-server/fullchain.pem', 'utf8');

var certs = {key: privateKey, cert: certificate};
var http = require('https').createServer(certs, app);

var io = require('socket.io')(http);
  1. Modificamos aplicación cliente. En src/org/geowe/rtcmapping/RealTimeEngine.js cambiamos la URL de la función connect a usar https. El despliegue del cliente también deberá ser bajo https.
  2. Obligamos al alojamiento a redirigir el tráfico de la aplicación cliente a ser sólo https.

¡y está conectando y reconectando!

 

Gracias a  @gentooza no parece tan difícil, ¿verdad?

 

P.D.: A tener en cuenta que no podremos usar un certificado autofirmado.


Comentarios