BysMax
Traccar

Emmanuel Hernandez

May 25, 2024
Intermediate
Short

Conexión Segura para Traccar HTTPS

Traccar no soporta conexiones seguras de manera nativa, por lo que se usa un servidor proxy, en este caso Apache, para tunelizar todas las solicitudes a través de una conexión segura.

Traccar sirve la interfaz web y la API usando HTTP regular. Para habilitar HTTPS, se usa un servidor proxy, como Apache.

Instalación de Apache

  1. Instalar y habilitar módulos necesarios:

    sudo add-apt-repository ppa:ondrej/apache2
    sudo apt-get install ssl-cert apache2
    sudo a2enmod ssl proxy_http proxy_wstunnel rewrite
    sudo service apache2 restart
    
  2. Configurar Apache:

    sudo nano /etc/apache2/sites-available/traccar.conf
    
    <VirtualHost *:80>
        ServerName demo.traccar.org
        Redirect / https://demo.traccar.org/
    </VirtualHost>
    <IfModule mod_ssl.c>
        <VirtualHost _default_:443>
            ServerName demo.traccar.org
            ServerAdmin webmaster@localhost
            DocumentRoot /var/www/html
    
            ProxyPass /api/socket ws://localhost:8082/api/socket
            ProxyPassReverse /api/socket ws://localhost:8082/api/socket
    
            ProxyPass / http://localhost:8082/
            ProxyPassReverse / http://localhost:8082/
    
            SSLEngine on
            SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
            SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
        </VirtualHost>
    </IfModule>
    
  3. Habilitar nueva configuración:

    sudo a2dissite 000-default
    sudo a2ensite traccar
    sudo service apache2 restart
    
  4. Generar certificado SSL con Let's Encrypt:

    sudo apt install certbot python3-certbot-apache
    sudo certbot --apache
    

Traccar en Subdirectorio

Ajusta la configuración del proxy y las cookies:

ProxyRequests off

ProxyPass /gps/api/socket ws://localhost:8082/api/socket
ProxyPassReverse /gps/api/socket ws://localhost:8082/api/socket

ProxyPass /gps/ http://localhost:8082/
ProxyPassReverse /gps/ http://localhost:8082/
ProxyPassReverseCookiePath / /gps/

Redirect permanent /gps /gps/