Comment Bien installer et configurer Odoo 15 sur Ubuntu 20.04 -Parie 3

Introduction :

Odoo nginx

Dans les deux articles précédents, nous avons vu comment installer Odoo 15, sur Ubuntu 20.04, et nous avons précisé que pour lancer Odoo, il faut tapez l’adresse Fixe de notre Serveur suivi par deux points ensuite le port préconfiguré dans le fichier de configuration.
La meilleure façon d’accéder à notre instance Odoo est d’utiliser un nom de domaine, comme l’accès à n’importe quel site web internet, au lieu d’utiliser une adresse IP, en effet, il est plus facile de mémoriser un nom qu’un chiffre.
Pour atteindre cet objectif, plusieurs étapes sont nécessaires.
Dans cet article, nous allons découvrir comment installer un proxy inverse ou reverse Proxy (qui est Ngnix ),  puis la manière d’installer un certificat SSL gratuit (qui Let’s Encrypt).
Dans le prochain article, nous verrons comment configurer Nginx pour pouvoir accéder à Odoo 

Très important ! n’oubliez pas de Pointez votre nom de domaine vers le VPS ou l’adresse de Votre Serveur : 

Notre but, est de pouvoir taper un nom de domaine de type http ://notrenomdedomaine.com pour accéder à Odoo installé dans un VPS ou Serveur.
La première étape évidente, est donc de réserver un nom de domaine chez votre fournisseur préféré.
Une fois le nom de domaine réservé, et afin de pour l’utiliser pour accéder à notre instance Odoo, il faut le pointer vers l’adresse IP de notre serveur où Odoo est installé.
Chaque fournisseur ( Ovh, lws, Hostgator, Hostinger,….) offre cette possibilité en accédant à votre espace d’administration (cpanel) de votre nom de domaine.
Pour le cas par exemple de lws( https://www.lws.fr/) , après avoir accéder à votre espace de contrôle, allez sur votre nom de domaine, cliquez sur Gérer , puis cliquez sur le bouton  Zones DNS.
Dans le tableau des enregistrements qui s’affiche, cliquez sur la ligne qui porte le nom @, puis cliquez sur le bouton de modification.
Dans le popup qui s’affiche, tapez l’adresse IP de Votre serveur, au lieu de l’adresse proposée par défaut.
Dans la même ligne, vous remarquez l’option TTL, qui indique le temps à prendre pour que les changements vont être effectuées (dans notre cas la redirection vers notre Serveur).
Vous pouvez mettre dans ce champ le temps souhaité (15 minutes est la durée minimale).
Si vous avez choisi un autre fournisseur, la méthode devait ressembler à la méthode qu’on vient d’expliquer avec des légères différences.
Vous pouvez comme même demander à votre fournisseur de faire le travail pour vous dans le cas où vous n’arrivez pas à le faire vous-même.

Installation du Proxy inverse (revers Proxy) NGINX : 

NGINX Open Source ou NGINX (prononcé Engine X ) est un logiciel libre de serveur Web (ou HTTP) ainsi qu'un proxy inverse écrit par Igor Sysoev, dont le développement a débuté en 2002 pour les besoins d'un site russe à très fort trafic (Rambler). 
Pour rappel Un proxy inverse (reverse proxy) ou serveur mandataire inverse est un type de serveur, habituellement placé en frontal de serveurs web. Contrairement au serveur proxy qui permet à un utilisateur d'accéder au réseau Internet, le proxy inverse permet à un utilisateur d'Internet d'accéder à des serveurs internes. Une des applications courantes du proxy inverse est la répartition de charge (load-balancing).
Avant de procéder à l’installation de NGINX, assurez-vous que le port 80 et 443 soient installés, comme nous avons fait avec le port d’Odoo par défaut(8069).
Important :
Dans ce guide nous allons utiliser comme exemple de nom de domaine www.example.com, n’oubliez pas de le remplacer par votre nom de domaine.
Maintenant, installant ENGINX sur Ubuntu utiliser la commande suivante :

sudo apt install nginx

pour s’assurez que ENGINX est bien installé, lancez la commande suivante :

sudo systemctl status nginx

Si   NGINX est bien installé, vous aurez sur la console un message que le service est actif et en cours d’exécution.
Une fois installé, si vous tapez sur le navigateur votre nom de domaine http://votresiteweb.com vous aurez la page de bienvenu de NGINX comme le montre l’image suivante. 

Obtention et installation de votre certificat de sécurité gratuite Let’s Encrypt 

Afin de sécuriser de votre site web, vous devez obtenir le/les certificats de sécurités adéquate(s) au niveau de confidentialité de votre activité, dont certains sont payantes, les autres sont gratuites.
Dans notre exemple, nous allons installer le certificat gratuit Let’s Encrypt, qui nous permettra d’assurer la sécurité des données transférées et permet aux navigateurs de le considérer notre site comme un site sécurisé (chrome, firefox,…).
Pour se faire, plusieurs étapes sont nécessaires :
·         Installation du package Certboot :
Le package Certboot, permet d’enregistrer et de configurer le certificat SSL, pour l’installer utiliser la commande :

sudo apt install certbot

·         Créez une clé de sécurité performant, en utilisant la commande suivante :

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

·         Création des répertoires de let’s Encrypt, avec les droits d’accès nécessaires à travers les commandes suivante :
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp www-data /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt  

·         Création de deux fichiers de configurations qui vont contenir les réglages des Blocs NGINX nécessaires pour le certificat SSL.
o   Création du premier fichier de configuration en utilisant la commande :

 sudo nano /etc/nginx/snippets/letsencrypt.conf

o   Mettez les lignes suivantes :

location ^~ /.well-known/acme-challenge/ {
allow all;
root /var/lib/letsencrypt/;
default_type "text/plain";
try_files $uri =404;
          }  

o   Création du deuxième fichier de configuration :

  sudo nano /etc/nginx/snippets/ssl.conf  

o   Mettez dedans le code suivant :

dhparam /etc/ssl/certs/dhparam.pem;

ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 30s;
add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
 

·         Une fois les deux fichiers snipets de configuration sont créé, nous pouvons les utiliser pour obtenir notre certificat SSL, pour se faire, nous allons suivre les étapes suivantes :
o   Déclarez votre site comme un site valable dans NGINX , en utilisant les commandes suivantes

sudo nano /etc/nginx/sites-available/example.com.conf

Mettez le code suivant :

server {
listen 80;
server_name example.com www.example.com;
include snippets/letsencrypt.conf;
}


Rappel : N’oubliez pas de modifier www.example.com,par le nom de votre site !
o   Activez votre site dans NGINX, en utilisant les commandes suivantes :

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

o   Redémarrez maintenant le service NGINX, en utilisant la commande suivante :

sudo systemctl restart nginx

Si vous n’aurez aucun message, d’erreur cela veut dire que NGINX est bien configuré. Dans le cas contraire, vérifiez que vous avez bien choisi les étapes, et que vous avez le nom de domaine correcte (au lieu www.example.com qui est utilisé juste pour faire la démonstration)
·         Obtention du certificat SSL :
A ce stade, nous sommes prêts à obtenir notre certificat en utilisant, la commande suivante :

sudo certbot certonly --agree-tos --email admin@example.com --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com


         Important : comme indiqué précédemment, remplacez www.example.com par votre nom de domaine, et n’oubliez pas de mettre une adresse email réelle, sur laquelle vous allez recevoir des email de let’s Encrypt, au lieu de : admin@example.com , citée comme exemple.
Si tout marche bien, Vous aurez comme message de congratulation qui ressemble à ça :


IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2022-05-10. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Redirections vers le nom de domaine sécurisé :
Maintenant le certificat installé, nous allons s’assurez que lorsque l’utilisateur tape example.com ou www.example.com , on aura toujours l’adresse :de cette forme  https://example.com
Pour se faire, éditez le fichier de configuration de votre site sur NGINX et mettez le code suivant :

sudo nano /etc/nginx/sites-available/example.com.conf

Mettez le code suivant :

server {
    listen 80;
    server_name www.example.com example.com;
 
    include snippets/letsencrypt.conf;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl http2;
    server_name www.example.com;
 
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;
 
    return 301 https://example.com$request_uri;
}
 
server {
    listen 443 ssl http2;
    server_name example.com;
 
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;
 
    # . . . other code
}


Rappel important ! : Toujours pour ne pas avoir des erreurs, n’oubliez surtout pas de remplacer exampe.com par votre nom de domaine dans tous les lignes du fichier
    Redémarrez le service NGINX en utilisant la commande : 

sudo systemctl reload nginx

Si tout passe bien, vous n’aurez aucun message sur votre console.
 
   Félicitation, Vous avez obtenu votre certificat, que vous pouvez vérifier en tapant votre nom de domaine, vous remarquerez l’ajout de l’icône cadenas devant le nom de votre site web.
 

Auto renouvellement de votre certificat SSL :
 Par défaut, en installant Let’s Encrypt, vous aurez 90 jours comme période de validité de votre certificat. Après la fin de cette période, vous ne pouvez pas accéder à votre site web.
Heureusement, c’est possible d’ajoutez une simple ligne au fichier de configuration pour permettre l’auto renouvellement du certificat SSL .
Pour se faire, éditez le fichier de configuration etc/letsencypt.cli.ini

sudo nano /etc/letsencrypt/cli.ini

Ajoutez la ligne suivante :

deploy-hook = systemctl reload nginx

 Pour tester le processus de renouvèlement, exécutez la commande de certbot suivante :

sudo certbot renew --dry-run

Si aucun message d’erreur n’est affiché, alors le renouvèlement de certificat va se faire automatiquement sans aucun problème. 


Conclusion : 

Dans cet article, nous avons vu comment installer NGINX, qui va jouer le rôle d’un proxy inversé afin de pouvoir gérer les requêtes vers les applications Odoo installées sur notre serveur,
Nous avons vu également, les configurations nécessaires de NGINX, afin de pouvoir utiliser un nom de domaine au lieu d’une adresse IP pour accéder à notre instance Odoo.
Nous avons entamé la manière d’obtenir un certificat de sécurité gratuit SSL, qui est Let’s Encrypt dans notre exemple, et comment pouvoir la renouveler automatiquement.
Dans le prochain article, nous verrons comment configurer NGINX afin de pouvoir accéder à Odoo avec le nom de domaine et le certificat installé. 

Télécharger gratuitement votre  guide odoo ! 

Télécharger Gratuitement votre guide Odoo

Découvrez comment , Odoo  est une vraie opportunité pour les entreprises et les développeurs !


Télécharger !

Page 3 sur 5