Guide des technologies

SSL pour OpenERP sur Ubuntu — Apache comme terminator SSL

8 min read Sécurité Mis à jour 02 Oct 2025
SSL pour OpenERP sur Ubuntu — Guide Apache
SSL pour OpenERP sur Ubuntu — Guide Apache

Ce guide explique comment mettre en place un chiffrement SSL pour un serveur OpenERP (Ubuntu 10.04 LTS) en utilisant Apache comme proxy inverse et point de terminaison SSL. Il couvre l’installation d’Apache, la génération d’un certificat auto-signé, la configuration des hôtes virtuels, l’ajustement des fichiers de configuration OpenERP/OpenERP-Web, des conseils de sécurité et des procédures de vérification.

Contexte et objectif

Ce document décrit une méthode éprouvée pour fournir un accès chiffré à un serveur OpenERP neuf sous Ubuntu 10.04 LTS. Apache joue le rôle de proxy inverse : il termine les connexions TLS/SSL (port 443) et transmet la requête en clair vers les services locaux d’OpenERP (web client, WebDAV/CalDAV, XMLRPC sécurisé). Le client GTK d’OpenERP peut, quant à lui, établir une connexion XMLRPC chiffrée (XMLRPC-SSL) vers le serveur.

Important : l’exemple utilise des certificats auto-signés pour la simplicité. Les certificats émis par une autorité (Let’s Encrypt, CA commerciale) sont recommandés en production.

Variantes d’intention (SEO)

  • configurer SSL OpenERP
  • Apache reverse proxy OpenERP SSL
  • sécuriser OpenERP WebDAV CalDAV
  • OpenERP SSL self-signed

Prérequis

  • Accès root (sudo) sur le serveur Ubuntu 10.04 LTS.
  • OpenERP et le client web (openerp-web) installés.
  • Ports 80 et 443 accessibles si vous devez tester depuis l’extérieur.

Étape 11 — Aperçu général

Nous allons :

  1. Installer Apache et modules nécessaires.
  2. Générer une clé privée et un certificat auto-signé.
  3. Créer un site Apache configuré pour le reverse proxy et SSL.
  4. Limiter les services OpenERP pour n’écouter que sur localhost.
  5. Redémarrer les services et vérifier le fonctionnement.

Étape 11.1 Installer Apache et modules requis

Installez Apache :

sudo apt-get install apache2

Puis activez les modules qui ne sont pas forcément activés par défaut :

sudo a2enmod ssl proxy_http headers rewrite

Ces modules assurent la terminaison SSL (ssl), le proxy HTTP (proxy_http), la gestion des en-têtes (headers) et les réécritures d’URL (rewrite, optionnel pour redirections HTTP→HTTPS).

Étape 11.2 Créer votre clé et certificat

Créez d’abord un répertoire temporaire, puis générez une clé RSA protégée par une passphrase :

cd
mkdir temp
cd temp

Génération de la clé avec chiffrement (passphrase) :

openssl genrsa -des3 -out server.pkey 1024

Pour éviter d’entrer la passphrase à chaque démarrage, supprimez-la de la clé :

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

Créez une requête de signature (CSR) qui contiendra les informations du certificat :

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

Lors de la saisie, renseignez les champs demandés (Country, State, Locality, Organization, Common Name = domaine ou IP, Email). Vous pouvez laisser certains champs vides en appuyant sur Entrée.

Enfin auto-signez le certificat pour 365 jours :

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

Ajustez les permissions et déplacez les fichiers en lieu sûr :

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/

Ces droits garantissent que seul l’utilisateur openerp (et root) peut lire la clé privée.

Étape 11.3 Créer le fichier de configuration du site Apache

Créez un nouveau VirtualHost SSL :

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

Insérez le contenu suivant (remarques plus bas) :


   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

Notes importantes :

  • Il y a deux blocs Proxy : l’un pour /webdav/ (redirige vers le port XMLRPC WebDAV sur 8069) et l’autre pour / (redirige vers le client web sur 8080).
  • L’ordre importe : /webdav/ doit apparaître avant /.

Activez le site :

sudo a2ensite openerp-ssl

Redirection optionnelle HTTP → HTTPS : ajoutez ces lignes dans /etc/apache2/sites-available/default (en dehors de tout bloc ) :

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

Cette redirection force les navigateurs web à utiliser HTTPS.

Étape 11.4 Modifier la configuration du serveur OpenERP et du client web

Limitez l’écoute des services non chiffrés à localhost et indiquez les fichiers pkey/crt pour le service XMLRPC-SSL.

Éditez /etc/openerp-server.conf :

sudo nano /etc/openerp-server.conf

Mettez ces valeurs :

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 vous souhaitez activer WebDAV/CalDAV :

[webdav]
enable = True
vdir = webdav

Éditez ensuite le fichier du client web /etc/openerp-web.conf :

sudo nano /etc/openerp-web.conf

Ajustez pour n’écouter que sur localhost et indiquer que l’application est derrière un proxy :

# Quelques paramètres serveur
server.socket_host = "127.0.0.1"
# Indiquer True si déployé derrière un proxy (Apache mod_proxy)
tools.proxy.on = True
# Si le proxy n'ajoute pas X-Forwarded-Host, renseignez l'URL publique
tools.proxy.base = 'https://your-ip-or-domain'
# Désactivez si vous voulez activer les contrôles CSRF
tools.csrf.on = False

Remplacez ‘https://your-ip-or-domain’ par votre nom de domaine ou IP publique.

Étape 11.5 Tester

Redémarrez les services :

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

Vérifications :

  • Le port 8080 ne doit pas être accessible depuis l’extérieur.
  • Le client GTK doit se connecter via XMLRPC-SSL (port 8071) et utiliser le protocole XMLRPC sécurisé.
  • Accédez au web client via :

https://your-ip-or-domain

Pour CalDAV, une URL de calendrier ressemblera à :

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

Critères d’acceptation

  • Le site web OpenERP est accessible uniquement via HTTPS (port 443).
  • La clé privée est lisible uniquement par openerp et root (/etc/ssl/openerp/server.key Permission 640).
  • Les ports non sécurisés (8080, 8069, 8070) ne répondent qu’à localhost.
  • Les clients GTK utilisent XMLRPC sécurisé (port 8071).
  • Les en-têtes X-Forwarded-Proto sont correctement transmis.

Sécurité et durcissement (recommandations)

  • N’utilisez pas SSLv3 et forcez TLS 1.2+ dans la configuration Apache : activez des suites de chiffrement modernes (ECDHE, AES-GCM). Exemple (Apache SSLConf) :

    • SSLProtocol all -SSLv2 -SSLv3
    • SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
  • Activez HSTS pour forcer les navigateurs à n’utiliser que HTTPS : ajoutez l’en-tête

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
  • Désactivez le support des suites faibles (RC4, DES).
  • Utilisez un certificat émis par une AC reconnue en production (Let’s Encrypt, CA commerciale). Les certificats auto-signés provoquent des avertissements dans les navigateurs et compliquent l’intégration mobile.
  • Gardez le système et Apache à jour ; Ubuntu 10.04 est ancien et ne reçoit plus de mises à jour de sécurité : planifiez une migration vers une version LTS supportée.

Important : la sécurité ne se limite pas au chiffrement transport. Protégez les comptes, utilisez des mots de passe forts et des politiques d’accès, et segmentez le réseau.

Alternatives et approches complémentaires

  • Let’s Encrypt : automatisation gratuite des certificats valides pour navigateur. Remplace la partie openssl et simplifie le renouvellement.
  • HAProxy ou Nginx comme terminator SSL (performances et configuration de TLS plus fine). Apache reste très répandu et compatible.
  • Utiliser un load balancer cloud (AWS ELB/ALB, GCP LB) si vous avez une architecture distribuée.

Quand cette configuration peut échouer (contre-exemples)

  • Si Apache n’est pas correctement autorisé à accéder aux fichiers .crt/.key (mauvaises permissions), SSL ne démarre pas.
  • Si openerp-web n’est pas configuré pour tools.proxy.on = True, les URL publiques et redirections peuvent être incorrectes.
  • Si vous conservez des services ouverts sur l’interface publique (ports 8080/8069), vous exposez des services non chiffrés.
  • Sur des distributions plus récentes, les chemins et outils Apache peuvent différer (systemd, sites-available/sites-enabled inchangés mais commandes de gestion variées).

Rôles et checklist (qui fait quoi)

  • Administrateur système :

    • Installer Apache et modules, générer/migrer certificats.
    • Configurer /etc/ssl/openerp permissions.
    • Activer le site Apache SSL et rechargements.
  • Admin OpenERP (application) :

    • Mettre à jour /etc/openerp-server.conf et /etc/openerp-web.conf.
    • Tester accès WebDAV/CalDAV et XMLRPC-SSL.
  • Responsable sécurité :

    • Vérifier la configuration TLS (protocoles, ciphers), activer HSTS.
    • Valider l’utilisation d’une AC en production.

Procédure de dépannage rapide

Symptôme : Apache ne démarre pas après activation du VirtualHost SSL

  • Vérifiez la syntaxe : sudo apachectl configtest
  • Consulter les logs : /var/log/apache2/error.log
  • Vérifier permissions du certificat : sudo ls -l /etc/ssl/openerp/

Symptôme : navigateur signale certificat non valide

  • Si certificat auto-signé : ajout d’exception ou installer un certificat signé par une AC.
  • Vérifier Common Name (CN) / Subject Alternative Names (SAN) correspond au domaine.

Symptôme : WebDAV inaccessible

  • Vérifier que la section ProxyPass /webdav/ est présente et avant la règle ProxyPass pour ‘/‘.
  • Contrôler les logs Apache pour erreurs 40x/50x.

Mini-méthodologie pour mise en production

  1. Générer CSR et obtenir certificat d’une AC.
  2. Installer certificat et clé en /etc/ssl/openerp/ avec permissions restreintes.
  3. Appliquer durcissement TLS et règles HSTS.
  4. Tester via SSL Labs (ou équivalent interne) et corriger les faiblesses.
  5. Mettre en place le renouvellement automatique (cron, certbot si Let’s Encrypt).

Tests/critères d’acceptation (cas concrets)

  • Test 1 : accès Web

    • Étapes : ouvrir https://your-ip-or-domain depuis un navigateur moderne.
    • Résultat attendu : page OpenERP s’affiche, connexion HTTPS valide (pas d’erreur essentielle si un certificat signé par AC est utilisé).
  • Test 2 : GTK client

    • Étapes : configurer un profil avec hôte = your-ip-or-domain, port = 8071, protocole = XMLRPC (Secure).
    • Résultat attendu : connexion établie et authentification possible.
  • Test 3 : WebDAV/CalDAV

    • Étapes : accéder à l’URL /webdav/DB_NAME/… depuis un client CalDAV compatible.
    • Résultat attendu : synchronisation possible.

Glossaire (1 ligne chacun)

  • SSL/TLS : protocoles de chiffrement pour sécuriser les communications réseau.
  • Proxy inverse (reverse proxy) : serveur qui reçoit les requêtes clients et les transmet à un ou plusieurs serveurs internes.
  • CSR : requête de signature de certificat générée avant l’obtention d’un certificat.
  • HSTS : mécanisme HTTP forçant l’utilisation de HTTPS côté client.

Notes GDPR / vie privée

Le chiffrement TLS protège les données en transit mais n’est pas suffisant seul pour la conformité : chiffrez aussi les données au repos si nécessaire, limitez l’accès, consignez les traitements et respectez les durées de conservation.

Résumé

  • Installer Apache et activer ssl, proxy_http, headers et rewrite.
  • Générer une clé et un certificat, puis les protéger et les placer sous /etc/ssl/openerp/.
  • Configurer un VirtualHost Apache pour terminer TLS et proxyfier /webdav/ vers 8069 et / vers 8080.
  • Restreindre OpenERP et openerp-web pour n’écouter que sur localhost et activer XMLRPC-SSL.
  • Tester, durcir TLS et préférer une AC publique pour la production.

Important : planifiez la migration depuis Ubuntu 10.04 vers une version LTS maintenue pour bénéficier des correctifs de sécurité.

Merci de vos retours et suggestions d’amélioration.

Auteur
Édition

Matériaux similaires

Voir les publications aimées sur Instagram
Réseaux sociaux

Voir les publications aimées sur Instagram

Afficher infos système sur le bureau Windows 10/11
Windows

Afficher infos système sur le bureau Windows 10/11

Installer et automatiser OpenERP sous Ubuntu
Administration système

Installer et automatiser OpenERP sous Ubuntu

Voir le nombre de dislikes YouTube — navigateur & Android
Guides

Voir le nombre de dislikes YouTube — navigateur & Android

Protéger vos données lors d'une catastrophe
Sécurité des données

Protéger vos données lors d'une catastrophe

Protection contre l'attaque BYOVD et pilotes vulnérables
Cybersécurité

Protection contre l'attaque BYOVD et pilotes vulnérables