Cas 2: Configuration production =============================== Procédure générale ------------------ La procédure suivante s'applique lorsqu'une :term:`PKI` est déjà disponible pour fournir les certificats nécessaires. Les étapes d'intégration des certificats à la solution Vitam sont les suivantes : * Générer les certificats avec les bons `key usage` par type de certificat * Déposer les certificats et les autorités de certifications correspondantes dans les bons répertoires. * Renseigner les mots de passe des clés privées des certificats dans le vault ansible ``environments/certs/vault-certs.yml`` * Utiliser le script Vitam permettant de générer les différents keystores. .. note:: Rappel pré-requis : vous devez disposer d'une ou plusieurs :term:`PKI` pour tout déploiement en production de la solution VITAM. Génération des certificats -------------------------- En conformité avec le document RGSV2 de l'ANSSI, il est recommandé de générer des certificats avec les caractéristiques suivantes: Certificats serveurs ^^^^^^^^^^^^^^^^^^^^ * Key Usage * digitalSignature, keyEncipherment * Extended Key Usage * TLS Web Server Authentication Les certificats serveurs générés doivent prendre en compte des alias "web" ( ``subjectAltName`` ). Le *subjectAltName* des certificats serveurs ( ``deployment/environments/certs/server/hosts/*`` ) doit contenir le nom dns du service sur consul associé. Exemple avec un cas standard: .service.. Ce qui donne pour le certificat serveur de access-external par exemple: .. code-block:: text X509v3 Subject Alternative Name: DNS:access-external.service.consul, DNS:localhost Il faudra alors mettre le même nom de domaine pour la configuration de consul (fichier ``deployment/environments/group_vars/all/vitam_vars.yml``, variable ``consul_domain`` ) Cas particulier pour ihm-demo et ihm-recette: il faut rajouter le nom dns qui sera utilisé pour requêter ces deux applications si celles-ci sont appelées directement en frontal en https. Certificat clients ^^^^^^^^^^^^^^^^^^ * Key Usage * digitalSignature * Extended Key Usage * TLS Web Client Authentication Certificats d'horodatage ^^^^^^^^^^^^^^^^^^^^^^^^ * Key Usage * digitalSignature, nonRepudiation * Extended Key Usage * Time Stamping Intégration de certificats existants ------------------------------------ Une fois les certificats et CA mis à disposition par votre PKI, il convient de les positionner sous ``environments/certs/....`` en respectant la structure indiquée ci-dessous. .. only:: html .. figure:: ../../annexes/images/arborescence_certs.svg :align: center Vue détaillée de l'arborescence des certificats .. only:: latex .. figure:: ../../annexes/images/arborescence_certs.png :align: center Vue détaillée de l'arborescence des certificats .. tip:: Dans le doute, n'hésitez pas à utiliser la PKI de test (étapes de génération de CA et de certificats) pour générer les fichiers requis au bon endroit et ainsi voir la structure exacte attendue ; il vous suffira ensuite de remplacer ces certificats "placeholders" par les certificats définitifs avant de lancer le déploiement. Ne pas oublier de renseigner le vault contenant les passphrases des clés des certificats: ``environments/certs/vault-certs.yml`` Pour modifier/créer un vault ansible, se référer à la documentation sur `cette url `_. Intégration d'une application externe (cliente) ----------------------------------------------- Dans le cas d'ajout de certificats :term:`SIA` externes : * Déposer le certificat (``.crt``) de l'application client dans ``environments/certs/client-external/clients/external/`` * Déposer les :term:`CA` du certificat de l'application (``.crt``) dans ``environments/certs/client-external/ca/`` * Editer le fichier ``environments/group_vars/all/vitam_security.yml`` et ajouter le(s) entrée(s) supplémentaire(s) (sous forme répertoire/fichier.crt, exemple: ``external/mon_sia.crt``) dans la directive ``admin_context_certs`` pour que ceux-ci soient ajoutés aux profils de sécurité durant le déploiement de la solution logicielle :term:`VITAM`.