Sécuriser BlueMind 3.5 avec un certificat Let’s Encrypt

Partager

INFO : veuillez noter que cet article ne s’applique pas aux versions 4.7 et au delà de BlueMind.

L’activité du jour : la mise en place d’un certificat Let’s Encrypt sur notre serveur de mail BlueMind en version 3.5.

L’intérêt

Let’s Encrypt permet de disposer d’un certificat gratuit et reconnu par les navigateurs. L’intérêt principal (dans l’esprit DevOps) est d’automatiser le processus de gestion des certificats parfois complexe.

Tout est automatique : la création, l’installation et surtout le renouvellement du certificat. Une fois mis en place, on peut l’oublier et le laisser se débrouiller tout seul.

Préparation du serveur web

Avant de générer un certificat, le serveur Let’s Encrypt va vérifier que le nom DNS du certificat vous appartient bien.

Le serveur va demander au client Let’s Encrypt de positionner une ressource à l’URL /.well-known/acme-challenge/ de votre serveur BlueMind. Il faut donc adapter la configuration du serveur nginx BlueMind pour permettre cet échange.

Pour plus d’informations sur le fonctionnement du protocole, vous pouvez consulter la page https://letsencrypt.org/how-it-works/

Le serveur web nginx BlueMind permet d’ajouter des fichiers de configuration qui ne seront pas écrasés lors de mises à jour dans le répertoire /etc/nginx/bm-local.d/. Le contenu des échanges avec le serveur Let’s Encrypt sera contenu dans le répertoire /var/www/letsencrypt sur le serveur :

  •  Le fichier /etc/nginx/bm-local.d/letsencrypt-acme-challenge.conf est ajouté avec le contenu suivant :
    location ^~ /.well-known/acme-challenge/ {
      default_type "text/plain";
      root /var/www/letsencrypt;
    }
  •  Enfin le serveur NGINX doit être redémarré (exemple sur Ubuntu 16.04) :
    systemctl reload bm-nginx

Génération du certificat

La 1ère étape est d’installer le client Let’s Encrypt certbot-auto :

sudo curl https://dl.eff.org/certbot-auto > /opt/letsencrypt/certbot-auto
sudo chmod +x /opt/letsencrypt/certbot-auto

La génération du certificat nécessite de fournir quelques informations :

  • L’acceptation des conditions d’utilisation
  • Le chemin pour déposer les ressources du challenge ACME
  • Le nom de domaine pour lequel le certificat est généré (potentiellement plusieurs)
  • L’adresse e-mail pour recevoir les notifications d’expiration et autres

Dans un souci d’automatisation, ces informations sont passées directement en ligne de commande et sans interactions (-n). Au 1er lancement, certbot-auto va installer automatiquement ses dépendances.

sudo ./certbot-auto certonly -n -a webroot --webroot-path=/var/www/letsencrypt -d <FQDN du serveur BM> -m <votre e-mail> --agree-tos

Si tout se passe bien, le certificat et les clés sont générés dans le repertoire /etc/letsencrypt/live/<FQDN du serveur BM>/

Installation du certificat dans l’environnement BlueMind

Maintenant que le certificat est généré, il faut configurer NGINX pour l’utiliser. Pour rester le plus transparent possible au niveau de BlueMind et éviter de tout casser lors des mises à jour, l’option choisie consiste à ré-écrire le certificat utilisé par BlueMind. Attention : pensez à sauver son ancien certificat si besoin.

Le script suivant va permettre de faire cette modification (il sera également utilisé pour le renouvellement) :

#!/bin/bash
cat /etc/letsencrypt/live/fqdn/privkey.pem /etc/letsencrypt/live/fqdn/fullchain.pem > /etc/ssl/certs/bm_cert.pem
systemctl reload postfix
systemctl reload bm-nginx

Ça y est, le serveur BlueMind est à présent sécurisé par un certificat reconnu !

Automatisation du renouvellement

Les certificats Let’s Encrypt ont une faible durée de vie (3 mois) mais tout est prévu dans le client pour leur renouvellement. De plus, certbot-auto permet de lancer une commande en cas de renouvellement réussi, ce qui va permettre d’appeler automatiquement le script précédent.

Une entrée crontab est ajoutée pour automatiser tout le processus :

0 0 * * 0 /opt/letsencrypt/certbot-auto renew --renew-hook "bash letsencrypt_posthook.sh" >> /var/log/letsencrypt/renew.log

Voilà, vous pouvez tranquillement passer à autre chose.

Article rédigé et publié par Julien Lavesque pour Obectif Libre

Contenus similaires
Résumé de la politique de confidentialité

1. Préambule

BlueMind est particulièrement attaché au respect de la vie privée et à la protection des données à caractère personnel. Aussi, la présente politique de protection des données a pour objectif de vous informer sur les engagements et mesures pratiques pris par BlueMind afin de veiller au respect de vos données à caractère personnel.

La présente politique de confidentialité pourra évoluer en fonction du contexte légal et réglementaire et de la doctrine de la Cnil.

2. Champ d’application

Cette politique de protection des données à caractère personnel s’applique à tous les traitements de données à caractère personnel, mis en œuvre par BlueMind, relatifs aux personnes extérieures (notamment les clients, partenaires, candidats au recrutement, fournisseurs, internautes).

3. Données collectées

De manière générale, vous pouvez entrer en contact avec BlueMind et visiter nos sites internet sans qu’il soit nécessaire de nous communiquer vos données personnelles.

Toutefois, afin d’être en mesure de vous apporter certains services, BlueMind peut vous demander de lui fournir des données personnelles, par exemple, pour répondre à une demande de contact, suivre un dossier de candidature, envoyer une newsletter ou gérer votre souscription à nos services.

Peuvent notamment être collectées vos coordonnées (nom, adresse, numéro de téléphone, adresse électronique, etc.) et d’autres informations, telles que celles indispensables à l’ouverture d’une souscription, ou bien encore des données liées à votre parcours professionnel lorsque vous postulez à l’une de nos offres.

Dans tous les cas, BlueMind veille à ne collecter et ne traiter que des données strictement nécessaires au regard de la finalité pour laquelle elles sont traitées (minimisation des données).

4. Finalités de la collecte

Les traitements mis en œuvre par BlueMind répondent à une finalité explicite, légitime et déterminée.

Vos données sont traitées principalement pour les finalités suivantes :

la gestion de votre inscription aux évènements ;
la gestion de votre abonnement à nos publications ;
la réponse à vos demande de contact ;
le suivi de votre dossier de candidature.

5. Information des utilisateurs

Conformément à la Règlementation Informatique et libertés, BlueMind vous informe sur les traitements de données à caractère personnel qu’elle met en œuvre.

Ainsi, BlueMind vous informe, de manière claire, lors de chaque collecte de données à caractère personnel notamment :

de l’identité du responsable de traitement (il s’agit du Data Protection Officer, DPO) ;
de la finalité pour laquelle vos données sont collectées ;
du caractère facultatif ou obligatoire des réponses ;
des destinataires des données ;
de l’existence et des modalités d’exercice des droits d’interrogation, d’accès, de rectification et d’opposition relativement à l’ensemble des données vous concernant.

6. Destinataires des données

BlueMind ne communique vos données à caractère personnel qu’à des destinataires habilités et déterminés.

Les destinataires de vos données à caractère personnel sont les services concernés de BlueMind.

7. Conservation des données

BlueMind ne conserve vos données que pour la durée nécessaire aux opérations pour lesquelles elles ont été collectées ainsi que dans le respect de la législation en vigueur.

8. Sécurité

BlueMind assure la sécurité de vos données à caractère personnel en mettant en place une protection des données renforcée par l’utilisation de moyens de sécurisation physiques et logiques.
9. Vos droits

En application de la règlementation Informatique et libertés, vous disposez d’un droit d’accès, de rectification, d’effacement, de limitation du traitement, à la portabilité et de définir le sort de vos données après votre décès relativement à l’ensemble des données vous concernant qui s’exercent auprès du Délégué à la protection des données par courrier électronique à l’adresse suivante : dpo@bluemind.net ou par courrier postal à l’adresse suivante, Hôtel des Télécom, BlueMind, 40 rue du village d’entreprise, 31670 Labège, accompagné d’une copie d’un titre d’identité signé.

10. Contact

Pour toutes demandes d’information concernant la politique de protection des données à caractère personnel mise en œuvre par BlueMind, vous pouvez vous adressez à dpo@bluemind.net