Tal vez necesitemos acceder a nuestro sistema domótico cuando estemos fuera de casa, para ello es recomendable, casi obligatorio, hacerlo a través de una conexión segura (https), ya que no querremos que nuestro sistema domótico se vea expuesto a peligros innecesarios.
Lo primero que debemos hacer es cumplir un par de requisitos:
- Necesitaremos un servicio de DNS Dinámico para nuestra dirección IP. Como sabemos, nuestra dirección IP suele cambiar cada vez que reiniciamos el router, por lo que estos servicios lo que hacen es asignarnos un dirección del tipo "xxxxx.no-ip.com" y mediante una aplicación o si nuestro router trae esa opción, se le envía nuestra IP actual a ese servicio que la mantiene actualizada, por lo que da igual que cambie ya que nosotros accedemos a la dirección anterior que nos redirige a nuestra IP. Si tenemos IP fija no es necesario hacer nada de esto.
- Es necesario redirigir el puerto https (443 por defecto) en nuestro router a la dirección dentro de nuestra red de la Raspberry Pi.
sudo apt-get install wgetAutomáticamente nos crea todos los certificados necesarios donde debemos indicar una contraseña para el certificado privado y la dirección dinámica que hayamos configurado en el servicio DNS.
cd pimatic-app
wget https://raw.githubusercontent.com/pimatic/pimatic/master/install/ssl-setup
chmod +x ./ssl-setup
./ssl-setup
Para configurar la conexión https y que todas nuestras conexiones a Pimatic se hagan con el protocolo SSL debemos editar el archivo de configuración config.json que deberia quedar así:
"httpsServer": {El último paso es importar el certificado de la Autoridad Certificadora (CA) que hemos creado en todos los dispositivos que vayamos a usar para gestionar Pimatic, tecleando en el navegador la siguiente dirección: http://tu-ddns/root-ca-cert.crt. Si no hacemos esto es posible que nos dé algún error cuando accedamos a Pimatic con el protocolo https.
"enabled": true,
"port": 443,
"hostname": "",
"keyFile": "ca/pimatic-ssl/private/privkey.pem",
"certFile": "ca/pimatic-ssl/public/cert.pem",
"rootCertFile": "ca/certs/cacert.crt"
},