Configuration SSL¶
Dev¶
Tous les services de la plateforme Efalia utilisent le même certificat SSL dev.crt (et sa clé dev.key) disponible dans provision/templates/ssl. Ces certificats sont dupliqués dans tous les repo git des services.
Le certificat racine dev-ca.crt est également disponible au même endroit. Il est installé sur chaque service (uniquement en dev) afin que ceux-ci puissent communiquer entre eux en HTTPS. Ce certificat racine doit aussi être importé sur les postes de dev : dans le Trousseau (sur Mac) ou le "trust store" (sur Linux) de toutes les machines de dev.
Sur Mac :
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain provision/templates/ssl/dev-ca.crt
Sur Linux :
sudo cp provision/templates/ssl/dev-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
dev-ca.crt via les préférences de Firefox (Préférences > Vie privée et sécurité > Certificats > Afficher les certificats > Importer).
Le certificat actuel couvre les domaines suivants : mgx.loc, mgsafe.loc, mglogin.loc, onlyoffice.loc, utilities.loc, hub.loc et portal.loc.
S'il s'avérait nécessaire d'ajouter un domaine, il faudrait alors régénérer complètement ces 3 fichiers en utilisant le script provision/scripts/generate-dev-ssl.sh (en l'ayant préalablement modifié pour y ajouter les domaines nécessaires) :
Note : ce script n'est disponible que dans le repo du service onlyoffice (en attendant de le centraliser dans un repo commun à tous les services).
Puis :
- Copier les nouveaux fichiers dev.crt, dev.key et dev-ca.crt dans tous les repos des services de la plateforme.
- Reconstruire toutes les images Docker de dev pour que les services installent ce nouveau certificat.
- Que tousles développeurs importent le nouveau certificat racine dev-ca.crt dans leur Trousseau / trust store.
Prod¶
Par défaut les services de la plateforme utilisent des certificats SSL de développement (voir ci-dessus). Pour utiliser des certificats SSL valides, il existe deux solutions.
Certificats SSL fournis par le client¶
Copier les certificats SSL fournis pas le client : - /etc/ssl/certs/mgx.crt - /etc/ssl/private/mgx.key
Puis redémarrer Nginx :
Certificats SSL générés par Letsencrypt¶
Ce mode de création de certificats SSL nécessite que le serveur soit accessible publiquement via le domaine à certifier.
Utiliser le script provision/scripts/setup-ssl.sh en l'exécutant sur le serveur cible :