Il est possible d'utiliser un certificat cachet d'établissement (personne morale). Le POC mené à Rouen repose sur l'utilisation d'un certificat cachet eIDAS (RGS**) obtenu auprès de Certinomis au format clé cryptographique.
La clé est de marque Feitian et la carte à puce de type Gemalto.
Depuis la version 1.27, il est possible d'utiliser OpenSC en lieu et place du driver safenet.
Depuis la version 1.34 la configuration de certificat a changée, il est maintenant possible de configurer plusieurs certificats.
L'installation se passe coté serveur ce qui implique de connecter la clé usb sur le serveur hébergeant esup-signature. Cela implique des contraintes particulière par rapport aux serveurs virtuels.
Deux solution sont possibles :
- Un port mappé sur le serveur hébergeant esup-signature. De ce fait, le serveur ne peux pas changer d'hyperviseur sans que la clé ne soit débranchée. Le débranchement de la clé est géré coté esup-signature pour permettre une continuité de service (en mode dégradé) lors des manipulations sur l'infra serveur.
- Un hub USB (type AnywhereUSB) permettant de virtualiser le port usb et éviter les contraintes liées à la première solution
Pré-requis
Installation des paquets :
- pcsc-tools
- libpcsclite1
- libpcsclite-dev
Installation de la clé USB :
- directement sur le serveur
- via un hub USB réseau Digi AnywhereUSB® (solution en place à Rouen)
Acquisition d'un certificat
Attention à bien vous équiper d'un certificat eIDas. Vous trouver la liste des fournisseurs et des certificats ici :
https://eidas.ec.europa.eu/efda/trust-services/browse/eidas/tls/tl/FR
En général ils sont fournis sur support cryptographique.
Si votre certificat n'est pas eIDas vous ne pourrez l'utiliser qu'en forçant le paramètre check-revocation-for-untrusted-chains à false
voir : Configuration - Section global#dss
Installation avec le driver SafeNet
Pour le materiel de type clé Feitian et carte sim Gemalto (comme fournis par Certinomis par example), les pilotes sont à télécharger ici : https://knowledge.digicert.com/general-information/how-to-download-safenet-authentication-client
wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.1_1.1.1w-0+deb11u4_amd64.deb sudo dpkg -i libssl1.1_1.1.1w-0+deb11u4_amd64.deb sudo apt install libgdk-pixbuf-2.0-0 libgdk-pixbuf-xlib-2.0-0 sudo dpkg -i safenetauthenticationclient-core_10.9.4723_amd64.deb
Une fois le paquet installé, on obtient le fichier /lib/pkcs11/libIDPrimePKCS11.so qui est le pilote qui sera utilisé par esup-signature ci-après...
La configuration à mettre dans le fichier application.yml :
seal-certificat-properties:
default :
seal-certificat-title: Cachet d'établissement eIDas # Titre pour le certificat
seal-certificat-type: pkcs11 # Type du certificat PKCS11 ou PKCS12
seal-certificat-driver: /lib/pkcs11/libIDPrimePKCS11.so # Pilote du certificat cachet dans le cas d'un PKCS11
seal-certificat-pin: ****** # Code pin du certificat cachet
seal-certificat-slot-id: 0 # Identifiant de l'emplacement (slot) utilisé pour accéder au certificat cachet.
roles: # Rôles autorisés à utiliser ce certificat
- ROLE_SEAL
Le premier permet de préciser le type de certificat à utiliser, le deuxième pointe pilote de la clé USB, le dernier correspond au code pin du certificat
Il est possible d'utiliser un certificat PKCS12 en guise de certificat cachet. Pour cela seal-certificat-type doit être PKSC12 et il faudra utiliser seal-certificat-file pour préciser l'emplacement du fichier .p12
Installation avec OpenSC
Afin d'éviter l'utilisation d'un pilote spécifique vous pouvez passer par OpenSC. L'installation et la vérification sont decrites ici : OpenSC
à mettre dans le fichier application.yml :
seal-certificat-properties:
default :
seal-certificat-title: Cachet d'établissement eIDas # Titre pour le certificat
seal-certificat-type: opensc # Type du certificat PKCS11 ou PKCS12
seal-certificat-pin: ****** # Code pin du certificat cachet
seal-certificat-slot-id: 0 # Identifiant de l'emplacement (slot) utilisé pour accéder au certificat cachet.
roles: # Rôles autorisés à utiliser ce certificat
- ROLE_SEAL
Mode d'accès
Cette signature électronique est disponible de trois manières :
- Les utilisateurs ayant obtenu le ROLE_SEAL ont la possibilité de signer avec le certificat d'établissement.
- Il est possible de configurer esup-signature pour signer automatiquement tous les documents en fin de circuits avec le paramètre seal-all-docs: true
- Enfin, il est possible de configurer la signature cachet automatique, circuit par circuit
Depuis la version 1.21, les utilisateurs ont la possibilité de signer avec un niveau de signature supperieur à celui exigé initalement pour signer le document