Accéder à ODOO 9 en SSL

Par défaut, l’accès à ODOO se fait en http sur le port 8069.
Voici la procédure pour y accéder en SSL en utilisant le serveur http nginx … et  un certificat ssl auto-signé et gratuit.

Cette procédure s’inspire en grande partie de celle décrite sur rosehosting.com

Environnement technique
– serveur virtualisé Debian 7.3 (wheezy) sur lequel sera installé ODOO
– navigateur sur PC Linux Mint 14  à partir duquel on accédera à ODOO

 Description 
Se connecter sur le serveur debian avec les droits « root »

– installer nginx
apt-get install nginx

– créer les clés ssl
mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
openssl genrsa -des3 -passout pass:x -out server.pass.key 2048
openssl rsa -passin pass:x -in server.pass.key -out server.key
rm server.pass.key
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

– créer le fichier suivant (en remplaçant yourOdooSite.com par votre nom de domaine)
vi /etc/nginx/sites-available/yourOdooSite.com

… avec le contenu suivant :
upstream oddo {
server 127.0.0.1:8069;
}

server {
listen      443 default;
server_name yourOdooSite.com;

access_log  /var/log/nginx/oddo.access.log;
error_log   /var/log/nginx/oddo.error.log;

ssl on;
ssl_certificate     /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
keepalive_timeout   60;

ssl_ciphers             HIGH:!ADH:!MD5;
ssl_protocols           SSLv3 TLSv1;
ssl_prefer_server_ciphers on;

proxy_buffers 16 64k;
proxy_buffer_size 128k;

location / {
proxy_pass  http://oddo;<br< a= » »>>        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;

proxy_set_header    Host            $host;
proxy_set_header    X-Real-IP       $remote_addr;
proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header    X-Forwarded-Proto https;
}

location ~* /web/static/ {
proxy_cache_valid 200 60m;
proxy_buffering on;
expires 864000;
proxy_pass http://oddo;<br< a= » »>>    }
}

server {
listen      80;
server_name yourOdooSite.com;

    add_header Strict-Transport-Security max-age=2592000;
rewrite ^/.*$
https://$host$request_uri? permanent;
}

– créer le lien symbolique
ln -s /etc/nginx/sites-available/yourOdooSite.com /etc/nginx/sites-enabled/yourOdooSite.com

– relancer nginx
/etc/init.d/nginx restart

*** Si vous accédez à votre serveur Odoo par une adresse IP au lieu d’un nom de domaine, vous pouvez remplacer dans la procédure précédente :

  • le fichier /etc/nginx/sites-available/yourOdooSite.com par
    /etc/nginx/sites-available/default
  • yourOdooSite.com par default_server dans le fichier  /etc/nginx/sites-available/default