Les pré-requis pour installer ELABFTW
Introduction et contexte
Le cahier de laboratoire électronique (CLE,) basé sur l’outil libre elabFTW, est un projet porté par le CNRS et le réseau qualité en recherche (QeR). Il concerne un nombre important d’unités de recherche rattaché au CNRS car il permet de centraliser, de collaborer et de sécuriser les données scientifiques de recherche. Des laboratoires dits "pilotes" ont été choisis pour installer et évaluer ce produit afin d’identifier les évolutions indispensables pour un déploiement au plus grand nombre. Mais d’autres structures EPST comme l'INRAE ont exprimé également le besoin.
Le groupe de travail CLE rattaché au réseau régional RAISIN des ASR (lui-même rattaché au groupement RESINFO) s’est fortement intéressé au déploiement de l’outil selon les recommandations de sécurité du CNRS. Cette page de documentation a pour objectif d’apporter tout d’abord une vision pratique sur une mise en place simple et rapide, mais également un déploiement sécurisé (ON Premise) pour les unités de recherche qui le souhaitent et ce même pour des unités en ZRR.
Tout d'abord, pour l'installation de l'outil consulter la documentation officielle elabFTW
Genération des certificats pour la VM client elabFTW et la VM serveur MySQL
La connexion de la machine virtuelle elabFTW au Serveur MYSQL se fait de façon sécurisée et par certificat SSL.
- Les pré-requis:
Il faut disposer d'un volume persitant qui sera utilisé pour le conteneur (indiquer "certs" pour le certificat du serveur MySql. Il faut également disposer d'une machine virtuelle (VM) ou d'un serveur MySQL avec SSL et Docker. Et il faut travailler à partir du fichier docker-compose.yml
- 3 phases pour le génération et l'utilisation des cerificats (il est possible d'utiliser un script pour la génération) :
=============
1. Générer la CA et le certificat serveur (depuis la VM MySQL)
-- openssl genrsa 2048 > ca-key.pem # pour créer la clé du CA et génére le fichier ca-cert.pem de la Certificate Authority (CA)
-- openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem # pour créer le certificat avec la clé précédente et génère le fichier clé Certificate Authority (CA), ca-key.pem
-- openssl req -newkey rsa:2048 -days 365000 -nodes -keyout server-key.pem -out server-req.pem # Pour le serveur, on crée la clé et le certificat
-- openssl rsa -in server-key.pem -out server-key.pem # pour convertir la clé en RSA
-- openssl x509 -req -in server-req.pem -days 365000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem # pour signer
===============
2. Générer le certificat pour le client de la même manière
-- openssl req -newkey rsa:2048 -days 365000 -nodes -keyout client-key.pem -out client-req.pem
-- openssl rsa -in client-key.pem -out client-key.pem
-- openssl x509 -req -in client-req.pem -days 365000 -CA ca-cert.pem -CAkey ca-key.pem -set serial 01 -out client-cert.pem
-- openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem # pour vérifier les certficats
-- openssl x509 -text -in ca-cert.pem
-- openssl x509 -text -in server-cert.pem
-- openssl x509 -text -in client-cert.pem
===============
3. Positionner en fonction les droits sur les fichiers certificats avant utilisation (400 que pour root, 999 lisible et accessible par le conteneur)
-- sudo chown 999 server-key.pem
-- copier les ichiers nécessaires (ca-cert.pem et server-cert.pem) pour la VM du service elabftw
-- chown root *.pem
-- chmod 400 ca-cert.pem
-- chmod 444 server-cert.pem
-- chown systemd+ server-cert.pem
Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:Aquitaine Locality Name (eg, city) []:Bordeaux Organization Name (eg, company) [Internet Widgits Pty Ltd]:Laboratoire XYZ Organizational Unit Name (eg, section) []:CRMSB Common Name (e.g. server FQDN or YOUR name) []:adresse IP du serveur MySQL ou nom FQDN Email Address []: taper ENTER