Guida alle tecnologie

Passo 11 — SSL per OpenERP su Ubuntu 10.04 LTS

7 min read Server Aggiornato 02 Oct 2025
SSL per OpenERP su Ubuntu — guida completa
SSL per OpenERP su Ubuntu — guida completa

In questa guida configuriamo Apache come proxy con terminazione SSL per un server OpenERP su Ubuntu 10.04 LTS usando certificati self-signed. Copriamo installazione dei moduli Apache, generazione della chiave e del certificato, configurazione dei VirtualHost, aggiornamento dei file di configurazione di OpenERP e del web client, test e suggerimenti di hardening e alternative pratiche.

Importante: in questa procedura usiamo certificati autofirmati (self-signed). Per ambienti di produzione valutare certificati emessi da una CA pubblica o soluzioni gratuite come Let’s Encrypt.

Per chi è questa guida

Questa guida è pensata per amministratori di sistema e operatori DevOps che gestiscono un’istanza OpenERP (ora Odoo) su server Ubuntu e vogliono mettere HTTPS davanti ai servizi web e WebDAV/CalDAV. Conoscenze di base di Linux, Apache e OpenSSL sono utili.

Varianti dell’intento principale

  • Configurare SSL per OpenERP
  • Apache come reverse proxy per OpenERP
  • Abilitare WebDAV/CalDAV sicuro per OpenERP
  • Generare certificati self-signed per servizi interni
  • Hardening TLS per Apache su server legacy

Sommario rapido dei passaggi

  1. Installare Apache e abilitare i moduli necessari
  2. Generare chiave, CSR e certificato self-signed
  3. Mettere chiave e certificato in /etc/ssl/openerp con permessi adeguati
  4. Creare un VirtualHost HTTPS che instrada /webdav/ e / verso OpenERP
  5. Modificare /etc/openerp-server.conf e /etc/openerp-web.conf per ascoltare solo su localhost e puntare ai file TLS
  6. Riavviare i servizi e testare
  7. Applicare hardening TLS e considerare alternative con CA pubblica

11.1 Installare Apache e i moduli richiesti

Sul server, installa apache2:

sudo apt-get install apache2

Abilita i moduli che ci serviranno: SSL, proxy HTTP, header e (opzionale) rewrite:

sudo a2enmod ssl proxy_http headers rewrite

Questi moduli permettono ad Apache di terminare TLS, agire da reverse proxy verso OpenERP e impostare header utili come X-Forwarded-Proto.

Nota: su Debian/Ubuntu la struttura dei file di configurazione Apache è diversa da altre distro. Un file utile sul server è /usr/share/doc/apache2.2-common/README.Debian.gz.

11.2 Creare la chiave e il certificato

In una cartella temporanea creiamo la chiave privata, rimuoviamo la passphrase per l’avvio automatico e generiamo una CSR (Certificate Signing Request), infine autografiamo il certificato.

Esempio di comandi consigliati:

cd
mkdir temp
cd temp

Genera una nuova chiave privata (ti verrà chiesto di inserire una passphrase):

openssl genrsa -des3 -out server.pkey 1024

Rimuovi la passphrase dalla chiave in modo che il server possa avviarsi automaticamente:

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

Crea la CSR per il certificato (compila i campi richiesti):

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

Compila i campi del Distinguished Name (DN). Per il Common Name (CN) inserisci il nome host pubblico o l’indirizzo IP con cui gli utenti accederanno (es. example.com o 203.0.113.5).

Infine auto-firma il certificato per 365 giorni:

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

Imposta proprietà e permessi corretti prima di spostare i file in una directory di sistema:

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

Crea una directory dedicata e muovi i file:

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/

Importante: conservare la chiave privata in un percorso protetto e con permessi stretti. Se la chiave viene compromessa, rigenerare subito il certificato.

11.3 Creare il file di configurazione del sito Apache

Creiamo un VirtualHost che ascolti sulla porta 443 e faccia da proxy per le richieste web e WebDAV:

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

Contenuto suggerito del file:


   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

Spiegazioni rapide:

  • /webdav/ è instradato verso la porta XMLRPC di OpenERP dove risiede WebDAV/CalDAV.
  • / (la root) è instradata verso il web client ascoltante su porta 8080.
  • L’ordine è importante: /webdav/ deve essere dichiarato prima di /.
  • RequestHeader set “X-Forwarded-Proto” “https” permette all’applicazione backend di conoscere lo schema originale della richiesta.

Abilita il sito:

sudo a2ensite openerp-ssl

Redirect da HTTP a HTTPS (opzionale)

Se desideri forzare il redirect delle richieste HTTP verso HTTPS, aggiungi queste righe nel file /etc/apache2/sites-available/default (fuori da blocchi o simili):

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

Questa regola reindirizza tutte le richieste sulla porta 80 verso il corrispondente URL HTTPS.

11.4 Modificare la configurazione di OpenERP e del web client

Per impedire l’accesso non cifrato dall’esterno, configura i servizi in modo che ascoltino solo su localhost.

Modifica il file /etc/openerp-server.conf:

sudo nano /etc/openerp-server.conf

Aggiorna/conferma i parametri seguenti:

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 = 127.0.0.1
xmlrpcs_port = 8071
secure_pkey_file = /etc/ssl/openerp/server.key
secure_cert_file = /etc/ssl/openerp/server.crt

Se vuoi abilitare WebDAV/CalDAV aggiungi alla fine del file:

[webdav]
enable = True
vdir = webdav

Poi modifica il file di configurazione del web client /etc/openerp-web.conf:

sudo nano /etc/openerp-web.conf

Esempio di impostazioni consigliate:

# 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

Nota: tools.proxy.base deve contenere l’URL pubblico che gli utenti usano. Mantieni tools.csrf.on = False solo se sai cosa stai facendo e se hai altre protezioni a livello di proxy.

11.5 Riavviare i servizi e verificare

Riavvia i servizi per applicare le modifiche:

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

Verifiche previste:

  • Il web client non dovrebbe essere raggiungibile su porta 8080 dall’esterno.
  • Il client GTK dovrebbe usare la porta 8071 (XMLRPC SSL) se configurato per XMLRPC (secure).
  • Accedi via browser a: https://your-ip-or-domain
  • URL per CalDAV (esempio):
https://your-ip-or-domain/webdav/DB_NAME/calendars/users/USERNAME/c/CALENDAR_NAME

Se visualizzi avvisi di certificato nel browser, è normale con certificati self-signed: dovrai importare il certificato sul client oppure distribuire un certificato firmato da una CA riconosciuta.


Hardening TLS consigliato

Per migliorare la sicurezza TLS su Apache e ridurre l’uso di protocolli e cifre deboli, aggiungi (o verifica) le seguenti direttive nel file di configurazione SSL (es. /etc/apache2/mods-available/ssl.conf o all’interno del VirtualHost):

# Disabilita SSLv2 e SSLv3
SSLProtocol all -SSLv2 -SSLv3
# Selezione di cifre più sicure (esempio minimale)
SSLCipherSuite HIGH:!aNULL:!MD5:!RC4
SSLHonorCipherOrder on

Ulteriori passi consigliati:

  • Tenere aggiornato OpenSSL e Apache quando possibile.
  • Limitare l’accesso alla directory contenente la chiave privata.
  • Abilitare HSTS (solo dopo aver verificato che tutto funzioni su HTTPS):
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

Attenzione: HSTS forza l’uso di HTTPS e può rendere difficile tornare a HTTP temporaneamente.


Alternative e quando i self-signed non bastano

Alternative pratiche:

  • Certificati di una CA pubblica: risolvono gli avvisi nei browser e semplificano l’uso mobile.
  • Let’s Encrypt: emette certificati gratuiti e automatici; ideale per ambienti con dominio pubblico.
  • PKI interna: usare una CA aziendale e distribuire il certificato radice ai client gestiti.

Quando i certificati self-signed falliscono:

  • Client mobili o app che rifiutano connessioni non fidate.
  • Condivisione del servizio con terze parti che richiedono CA pubbliche.
  • Automazione di integrazioni esterne che verificano la catena di fiducia.

Decisione rapida (diagramma):

flowchart TD
  A[Hai un dominio pubblico?] -->|Sì| B{Vuoi automazione gratuita?}
  A -->|No| C[Usa cert self-signed o CA interna]
  B -->|Sì| D[Let's Encrypt]
  B -->|No| E[CA commerciale o certificato a pagamento]
  C --> F[Distribuisci radice ai client gestiti]

Checklist per ruolo

Amministratore di sistema:

  • Installare e abilitare moduli Apache
  • Generare e proteggere chiave privata
  • Configurare VirtualHost HTTPS
  • Aggiornare openerp-server.conf e openerp-web.conf
  • Riavviare e testare servizi
  • Applicare hardening TLS

Sviluppatore / integratore:

  • Verificare che X-Forwarded-Proto arrivi al backend
  • Testare web client e autenticazione via HTTPS
  • Testare WebDAV/CalDAV con client esterni

Utente finale:

  • Testare accesso web via browser HTTPS
  • Se necessario, importare certificato self-signed nel browser/dispositivo

Criteri di accettazione

  • L’accesso web pubblico avviene esclusivamente su HTTPS (porta 443).
  • I servizi backend (8080, 8069, 8070) non sono accessibili direttamente dall’esterno.
  • WebDAV/CalDAV funzionano via HTTPS e restituiscono risposte corrette alle richieste PROPFIND/REPORT.
  • Le chiavi private sono accessibili solo dall’utente openerp (permessi ristretti).

Test di base e casi di verifica

Test funzionali:

  1. Browser: aprire https://your-ip-or-domain e confermare caricamento dell’interfaccia web.
  2. GTK client: connettersi usando protocollo XMLRPC (Secure) su porta 8071.
  3. WebDAV client: effettuare PROPFIND su https://your-ip-or-domain/webdav/DB_NAME/ e verificare risposta 207 Multi-Status.
  4. Port scan esterno: verificare che 8080, 8069, 8070 non siano raggiungibili dall’esterno.

Log utili per debug:

  • /var/log/apache2/error.log
  • /var/log/apache2/access.log
  • Log di OpenERP (controllare la posizione nei file di configurazione del server)

Snippet e cheat sheet rapido

Comandi principali riassunti:

# Installare Apache e moduli
sudo apt-get install apache2
sudo a2enmod ssl proxy_http headers rewrite

# Generare chiave e certificato
openssl genrsa -des3 -out server.pkey 1024
openssl rsa -in server.pkey -out server.key
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

# Permessi e spostamento
sudo chown openerp:root server.crt server.key
sudo chmod 640 server.crt server.key
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/

# Abilitare sito e riavviare
sudo a2ensite openerp-ssl
sudo service openerp-server restart
sudo service openerp-web restart
sudo service apache2 restart

Problemi comuni e soluzioni rapide

  • Errore di certificato nel browser: importare il certificato self-signed nel truststore del client o usare una CA riconosciuta.
  • WebDAV non risponde: verificare ProxyPass /webdav/ e che xmlrpc sia attivo e in ascolto su 8069.
  • Permessi chiave errati: assicurarsi che server.key non sia leggibile da altri (chmod 640) e proprietario openerp.

Nota: se riscontri errori 502/504 da Apache, controlla che OpenERP sia in ascolto sulle porte 8080/8069 e che non ci siano problemi di firewall locale.


Riepilogo

Questa guida spiega come terminare TLS con Apache per un’istanza OpenERP su Ubuntu 10.04 LTS usando certificati self-signed. Vengono mostrati i comandi per generare chiavi e certificati, la configurazione del VirtualHost HTTPS per instradare sia il web client che WebDAV, le modifiche da applicare ai file di configurazione di OpenERP e consigli pratici di hardening. Valuta l’uso di certificati emessi da una CA pubblica per ambienti in produzione o per dispositivi che non possono importare certificati self-signed.

Grazie per aver letto — eventuali commenti o suggerimenti sono benvenuti.

Autore
Redazione

Materiali simili

Installare e automatizzare OpenERP su Ubuntu
DevOps

Installare e automatizzare OpenERP su Ubuntu

Vedere i "non mi piace" su YouTube: estensione e Android
Guide tecniche

Vedere i "non mi piace" su YouTube: estensione e Android

Proteggi i tuoi dati da uragani e alluvioni
Sicurezza dati

Proteggi i tuoi dati da uragani e alluvioni

Protezione BYOVD: Evitare il bypass di Microsoft Defender
Sicurezza informatica

Protezione BYOVD: Evitare il bypass di Microsoft Defender

SSL per OpenERP su Ubuntu — guida completa
Server

SSL per OpenERP su Ubuntu — guida completa

Come scegliere i migliori provider VPN
Sicurezza

Come scegliere i migliori provider VPN