Guía de tecnologías

Paso 11. SSL

6 min read Seguridad Actualizado 02 Oct 2025
SSL para OpenERP en Ubuntu — Guía completa
SSL para OpenERP en Ubuntu — Guía completa

Objetivo principal

Proporcionar acceso cifrado HTTPS y canales seguros XMLRPC/NetRPC para OpenERP, y asegurar que solo Apache exponga servicios al exterior.

Variantes relacionadas de búsqueda

  • configurar SSL OpenERP
  • OpenERP SSL Ubuntu
  • Apache proxy SSL OpenERP
  • certificado SSL autofirmado OpenERP
  • WebDAV CalDAV SSL OpenERP

Requisitos previos

  • Servidor Ubuntu 10.04 LTS con OpenERP instalado.
  • Acceso root o sudo.
  • Paquetes básicos: openssl, apache2.
  • Conocimientos básicos de Apache y administración Linux.

Important: En esta guía usamos certificados autofirmados. Para un entorno de producción, considere certificados de una CA pública como Let’s Encrypt o una CA interna.

Paso 11.1. Instalar Apache y módulos necesarios

Instale Apache en el servidor:

sudo apt-get install apache2

Habilite los módulos que necesitaremos (SSL, proxy, headers y opcionalmente rewrite):

sudo a2enmod ssl proxy_http headers rewrite

Paso 11.2. Crear el certificado y la clave

Cree un directorio temporal y genere la clave privada cifrada:

cd
mkdir temp
cd temp

Generar una clave privada (se pedirá una frase de paso):

openssl genrsa -des3 -out server.pkey 1024

Eliminar la frase de paso para evitar pedirla en cada arranque:

openssl rsa -in server.pkey -out server.key

Crear una petición de firma (CSR):

openssl req -new -key server.key -out server.csr

Durante este paso se le preguntará por campos como país, provincia, localidad, organización, unidad organizativa, nombre común (Common Name) y correo electrónico. El campo “Common Name” debe ser el dominio o IP pública que usarán los clientes.

Firmar el certificado de forma autofirmada (válido 365 días en este ejemplo):

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Asegure propiedad y permisos adecuados:

sudo chown openerp:root server.crt server.key
sudo chmod 640 server.crt server.key

Mover los archivos a una ubicación sensata y protegida:

sudo mkdir /etc/ssl/openerp
sudo chown openerp:root /etc/ssl/openerp
sudo chmod 710 /etc/ssl/openerp
sudo mv server.crt server.key /etc/ssl/openerp/

Paso 11.3. Crear el archivo de configuración del sitio en Apache

Crear un nuevo VirtualHost para SSL:

sudo nano /etc/apache2/sites-available/openerp-ssl

Pegar la siguiente configuración (adecuada para OpenERP con WebDAV y cliente web):


   SSLEngine on
   SSLCertificateFile /etc/ssl/openerp/server.crt
   SSLCertificateKeyFile /etc/ssl/openerp/server.key
   ProxyRequests Off
 
   Order deny,allow
   Allow from all
 
   ProxyVia On
   ProxyPass /webdav/ http://127.0.0.1:8069/webdav/
 
   ProxyPassReverse /webdav/
 
   Order Deny,Allow
   Allow from all
   Satisfy Any
 
 
   ProxyPass / http://127.0.0.1:8080/
 
   ProxyPassReverse /
 
   RequestHeader set "X-Forwarded-Proto" "https"
   # Fix IE problem (httpapache proxy dav error 408/409)
   SetEnv proxy-nokeepalive 1

Notas: la configuración contiene dos secciones Proxy: una para /webdav/ (apunta al puerto XMLRPC de OpenERP) y otra para / (apunta al cliente web en 8080). El orden importa: si la ruta / precede a /webdav/ la segunda nunca coincidirá.

Habilite el sitio:

sudo a2ensite openerp-ssl

Opcional: forzar redirección de HTTP a HTTPS usando mod_rewrite. Añada estas líneas en /etc/apache2/sites-available/default (fuera de bloques ):

RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]

Paso 11.4. Cambios en OpenERP server y web-client

Edite /etc/openerp-server.conf para que los servicios no cifrados escuchen solo en localhost y para indicar la ruta de la clave y el certificado:

sudo nano /etc/openerp-server.conf

Asegúrese de incluir o ajustar estas líneas:

xmlrpc = True
xmlrpc_interface = 127.0.0.1
xmlrpc_port = 8069
netrpc = True
netrpc_interface = 127.0.0.1
netrpc_port = 8070
xmlrpcs = True
xmlrpcs_interface =
xmlrpcs_port = 8071
secure_pkey_file = /etc/ssl/openerp/server.key
secure_cert_file = /etc/ssl/openerp/server.crt

Si desea WebDAV/CalDAV, añada al final del archivo:

[webdav]
enable = True
vdir = webdav

Edite el fichero de configuración del cliente web /etc/openerp-web.conf para que el front-end web solo acepte conexiones desde localhost y sepa que va detrás de un proxy:

sudo nano /etc/openerp-web.conf

Asegúrese de que las líneas relevantes quedan así (comillas estándar):

# Some server parameters that you may want to tweak
server.socket_host = "127.0.0.1"
# Set to True if you are deploying your App behind a proxy
# e.g. Apache using mod_proxy
tools.proxy.on = True
# If your proxy does not add the X-Forwarded-Host header, set
# the following to the public host url.
tools.proxy.base = 'https://your-ip-or-domain'
# Set to false to disable CSRF checks
tools.csrf.on = False

Consejo: reemplace ‘https://your-ip-or-domain’ por la URL pública real usada por los usuarios.

Paso 11.5. Probar la configuración

Reinicie los servicios para aplicar cambios:

sudo service openerp-server restart
sudo service openerp-web restart
sudo service apache2 restart

Comprobaciones rápidas:

  • El puerto 8080 no debe estar accesible desde fuera.
  • El cliente GTK debe usar el puerto 8071 con protocolo XMLRPC (Secure).
  • Abra https://your-ip-or-domain en un navegador; acepte el certificado si es autofirmado.

URL ejemplo para CalDAV:

https://your-ip-or-domain/webdav/DB_NAME/calendars/users/USERNAME/c/CALENDAR_NAME

Lista de verificación rápida para el administrador

  • Apache instalado y módulos ssl, proxy_http, headers activos.
  • Certificado y clave ubicados en /etc/ssl/openerp con permisos 640.
  • VirtualHost habilitado (openerp-ssl).
  • openerp-server.conf y openerp-web.conf limitan interfaces a 127.0.0.1.
  • Servicios reiniciados y comprobados.
  • Pruebas de acceso HTTPS y clientes configurados.

Modelo mental y metodología breve

Mental model: Apache actúa como “terminador SSL” y proxy inverso. Apache recibe tráfico HTTPS, descifra, y reenvía tráfico HTTP interno a puertos locales de OpenERP (web client y WebDAV). El servidor OpenERP mantiene servicios no cifrados, pero solo en localhost.

Mini-metodología:

  1. Generar/instalar certificados.
  2. Configurar Apache para SSL y proxy.
  3. Restringir interfaces en OpenERP a localhost.
  4. Reiniciar servicios y validar conexiones.

Alternativas y cuándo elegir cada una

  • Nginx en lugar de Apache: Nginx es más eficiente en entornos con alta concurrencia y uso de recursos reducido. El procedimiento es similar: configurar Nginx como proxy inverso y manejar SSL.
  • Certificados de CA pública (Let’s Encrypt): Use Let’s Encrypt para eliminar advertencias de certificados autofirmados. Recomendado para producción pública.
  • VPN o túneles SSH: Si el número de usuarios es pequeño y desea mayor aislamiento, un túnel VPN puede limitar exposición sin gestionar certificados públicos.

Cuando evitar este enfoque:

  • No use certificados autofirmados en entornos donde la confianza del navegador/cliente sea crítica sin gestionar la confianza a nivel de empresa.
  • Si necesita soporte para múltiples dominios con automatización, prefiera Let’s Encrypt o una solución de gestión de certificados.

Riesgos comunes y mitigaciones

  • Riesgo: clave privada expuesta. Mitigación: permisos estrictos, propietario openerp, directorio 710.
  • Riesgo: certificado autofirmado provoca advertencias y rechazo. Mitigación: emitir certificados desde CA interna o Let’s Encrypt.
  • Riesgo: configuración de proxy incorrecta deja puertos abiertos. Mitigación: verificar con nmap/ss y revisar configuración de escucha en confs.

Solución de problemas rápida

  • No carga HTTPS: comprobar que Apache tiene mod_ssl activo y que el VirtualHost escucha en :443.
  • WebDAV falla con 408/409: añadir SetEnv proxy-nokeepalive 1 (ya incluido en ejemplo).
  • Cliente GTK no se conecta: asegurarse de usar puerto 8071 y protocolo XMLRPC (Secure).
  • Redirección HTTP a HTTPS no funciona: verificar que mod_rewrite está activo y reglas en el VirtualHost correcto.

Lista de verificación por roles

Administrador de sistema:

  • Validar permisos de /etc/ssl/openerp.
  • Automatizar renovación y despliegue de certificados.
  • Monitorizar servicios (systemd/upstart) y logs de Apache/OpenERP.

Administrador de OpenERP:

  • Confirmar que los addons que usan WebDAV no rompen con la proxy.
  • Actualizar tools.proxy.base si cambia el dominio público.

Usuario final:

  • Conectar usando la URL HTTPS proporcionada.
  • En GTK, seleccionar XMLRPC (Secure) y puerto 8071.

Matriz de decisión simple

  • ¿Necesita acceso público desde Internet? → Sí: use certificado público (Let’s Encrypt). No: considere VPN o CA interna.
  • ¿Alto volumen de tráfico estático? → Considere Nginx.

Criterios de aceptación

  • El servicio web solo responde por HTTPS en el dominio público.
  • El cliente GTK y WebDAV funcionan correctamente sobre canales seguros.
  • Ningún servicio no cifrado queda expuesto públicamente.

Notas de seguridad y privacidad

  • Evite transmitir credenciales en texto claro. XMLRPC/NetRPC deben ir por canales cifrados.
  • Para entornos con datos personales, documente el uso y conservación de claves según políticas internas y GDPR si aplica.

Resumen

  • Configure Apache como terminador SSL y proxy inverso.
  • Genere claves y certificados, asegúrelos con permisos apropiados.
  • Limite OpenERP y cliente web a localhost.
  • Reinicie servicios y valide conexiones HTTPS y clientes seguros.

Gracias por leer. Si necesita, proporcione la versión de OpenERP y Apache y puedo ayudar con una plantilla de configuración adaptada.

1-line glossary

  • Terminador SSL: servicio que descifra conexiones HTTPS y reenvía tráfico al backend en HTTP.
Autor
Edición

Materiales similares

Instalar y automatizar OpenERP en Ubuntu
Instalación

Instalar y automatizar OpenERP en Ubuntu

Ver el recuento de 'No me gusta' en YouTube
Guías

Ver el recuento de 'No me gusta' en YouTube

Proteger datos ante huracanes y desastres
Seguridad

Proteger datos ante huracanes y desastres

Protégete del ataque BYOVD que usa rwdrv.sys
Ciberseguridad

Protégete del ataque BYOVD que usa rwdrv.sys

SSL para OpenERP en Ubuntu — Guía completa
Seguridad

SSL para OpenERP en Ubuntu — Guía completa

Elegir los mejores proveedores de VPN
Ciberseguridad

Elegir los mejores proveedores de VPN