Procédure d'exploitation pour la révocation des certificats SIA et Personae
###########################################################################

Cette section fait référence au chapitre :ref:`integration_certificats_SIA_Personae`.

La version 1.10.0 (« R8 ») introduit une nouvelle fonctionnalité permettant la révocation des certificats :term:`SIA` et `Personae` afin d’empêcher des accès non autorisés aux :term:`API` de la solution logicielle :term:`VITAM` (vérification dans la couche https des :term:`CRL`).

Le fonctionnement de la validation des certificats de la solution logicielle :term:`VITAM` :term:`SIA` et `Personae` par :term:`CRL` est le suivant :

* L'administrateur transmet à la solution logicielle :term:`VITAM` le :term:`CRL` d'un :term:`CA` qui a émis le certificat présent dans la solution logicielle :term:`VITAM`, via le point d'API suivant ::

    http://{{ hosts_security_internal }}:{{ vitam.security_internal.port_admin }}/v1/api/crl

.. caution:: La CRL fournie doit être obligatoirement au format DER (cf. http://www.ietf.org/rfc/rfc3280.txt">RFC 3280: *Internet X.509 Public Key Infrastructure Certificate and CRL Profile*)

Exemple::

    curl -v -X POST -u {{ admin_basic_auth_user }}:{{ admin_basic_auth_password }}  http://{{ hosts_security_internal }}:{{vitam.security_internal.port_admin}}/v1/api/crl -H 'Content-Type: application/octet-stream' --data-binary @/path/to/crl/my.crl

* Le paramètre ``adminUser`` correspond à la valeur ``admin_basic_auth_user`` déclarée dans le fichier ``deployment/environments/group_vars/all/advanced/vitam_security.yml``
* Le paramètre ``adminPassword`` correspond à la valeur ``admin_basic_auth_password`` déclarée dans le fichier ``deployment/environments/group_vars/all/main/vault-vitam.yml``

.. Un retour arrière est possible en modifiant le statut du certificat directement dans la base MongoDB (collection identity.Certificate), en passant le champ 'Status' de 'REVOKED' à 'VALID'.

* Le système va contrôler tous les certificats (collections ``identity.Certificate`` et ``identity.PersonalCertificate``) émis par le `IssuerDN` correspondant à la :term:`CRL`, en vérifiant si ces derniers sont révoqués ou non. Si c'est le cas, alors la solution logicielle :term:`VITAM` positionne le statut du certificat révoqué à **REVOKED**. Cela a pour conséquence le rejet de tout accès aux :term:`API` :term:`VITAM` avec utilisation du certificat révoqué (les filtres de sécurité émettront des exceptions dans les journaux de `log`).

* Une alerte de sécurité est émise dans les journaux en cas de révocation.

.. caution:: La révocation d'un certificat peut également se faire via l'utilisation du playbook revoke_certificate.yml dans ansible-vitam-exploitation. Le playbook s'appelle de la manière suivante:
    ansible-playbook -i environments/<your_host_file> ansible-vitam-exploitation/revoke_certificate.yml --vault-password-file vault_pass.txt -e crl_file="<your_crl_file_path>"
