Sommaire
Java
...
Système d'information
| Info |
|---|
Pour un fonctionnement optimal vous devez disposer au sein de votre système d'information :
|
| Remarque |
|---|
| Toutes les opérations qui suivent pour installer les prérequis sont effectuées en root |
...
Java
| Avertissementinfo |
|---|
Version de java minimale : Java OpenJdk 11 |
...
17 |
Exemple d'installation à l'aide
...
du paquet de la distribution debian (selon version)
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
sudo -i wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add - add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ apt install openjdk-y software-properties-common apt update apt install adoptopenjdk-14-hotspot17-jre |
Vérification :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
java -version openjdk version "1417.0.17" 20202023-04-1418 OpenJDK Runtime Environment AdoptOpenJDK (build 1417.0.17+7-Debian-1deb11u1) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 1417.0.17+7-Debian-1deb11u1, mixed mode, sharing) |
...
Maven
| Infowarning |
|---|
maven > 3.15.0 x voir : https://maven.apache.org/download.cgi |
Exemple d'installation à l'aide du paquet de la distribution debian
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
sudo apt install maven |
Exemple d'installation sous Debian si la version est trop ancienne
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
sudo -i mkdir /opt/tools cd /opt/tools wget http://apache.crihan.fr/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz tar -xvf apache-maven-3.6.3-bin.tar.gz ln -s /opt/tools/apache-maven-3.6.3 /opt/maven nano /etc/profile.d/maven.sh /* Coller export JAVA_HOME=/usr/lib/jvm/adoptopenjdkjava-1417-hotspotopenjdk-amd64/ export M2_HOME=/opt/maven export MAVEN_HOME=/opt/maven export PATH=${M2_HOME}/bin:${PATH} chmod +x /etc/profile.d/maven.sh source /etc/profile.d/maven.sh |
Vérification (exemple sur une debian 12) :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
mvn -version Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)8.7 Maven home: /optusr/share/maven Java version: 1417.0.17, vendor: AdoptOpenJDKDebian, runtime: /usr/lib/jvm/adoptopenjdkjava-1417-hotspotopenjdk-amd64 Default locale: fr_FR, platform encoding: UTF-8 OS name: "linux", version: "46.191.0-9-amd64", arch: "amd64", family: "unix" |
| Remarque |
|---|
Pour rendre la commande mvn opérante pour tous les profiles, il faut rebooter. |
...
GhostScript
| Avertissement |
|---|
Version 10.05.1 minimum (version de base sur debian 13) |
Installation Debian 13
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
sudo apt install ghostscript |
Installation depuis les sources (cas des OS obsolètes)
Version AGPL : AGPL : https://www.ghostscript.com/download/gsdnld.htmlou
| Bloc de code | ||
|---|---|---|
| ||
cd /tmp
wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10060/ghostscript-10.06.0.tar.gz
tar -xzf ghostscript-10.06.0.tar.gz
cd ghostscript-10.06.0
# Installer les dépendances pour compiler
sudo apt update
sudo apt install build-essential libjpeg-dev libpng-dev libtiff-dev libx11-dev libfreetype6-dev
# Compiler et installer
./configure --without-x
make -j$(nproc)
sudo make install |
Installation depuis le github (cas des OS obsolètes)
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
apt install ghostscript | ||||
/* si besoin installer autoconf, automake et gcc */
cd /tmp
git clone git://git.ghostscript.com/ghostpdl.git
cd ghostpdl/
./autogen.sh
make
make install |
| Remarque |
|---|
Ne pas oublier de modifier le chemin d'acces à ghostscript dans la configuration d'esup-signature dans application.yml : pdf: path-to-g-s |
| Info |
|---|
La conversion vers PDF/A nécessite l'incorporation des polices dans le PDF. Ceci peut poser des problèmes pour plusieurs raisons :
Si la conversion n'est pas possible, le document sera signé dans son format d'origine. Cependant, il est possible d'installer les polices manquantes pour que Ghostscript puisse tout de même faire la convertions. Le nouveau parametre path-to-fonts : /usr/share/fonts , précise l'emplacement où GS doit chercher les polices (le dossier du système contenant toutes les polices). Voici deux méthodes (debian et centos) pour installer les polices Microsoft (les principales susceptibles d'être présentes dans les PDF) sur linux : Debian : wget http://ftp.fr.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.8.1_all.deb #Dependence for dpkg #Install fonts by dpkg sudo dpkg -i ttf-mscorefonts-installer_3.8.1_all.deb CentOS : yum install curl cabextract xorg-x11-font-utils fontconfig |
Vérification :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
gs -version GPL Ghostscript 910.06.270 (20192025-0409-0409) Copyright (C) 20182025 Artifex Software, Inc. All rights reserved. |
...
.
|
| Info |
|---|
Ghostscript est principalement utilisé pour convertir les documents signés au format PDF/A (https://fr.wikipedia.org/wiki/PDF/A). Pour ce faire, la commande gs utilise le fichier de définition PDFA_def.ps qui est fourni dans src/resources. Ce fichier de définition fait référence à un fichier srgb.icc (profil de couleur) lui aussi présent dans src/resources. Au moment du lancement, esup-signature contrôle l'emplacement "réel" du fichier srgb.icc et modifie la référence (uri) dans le fichier PDFA_def.ps. Cette procédure est normalement transparente. Mais, lorsque vous rencontrez un problème lors du test de conversion, vous pouvez contrôler la ligne 8 du fichier PDFA_def.ps qui contient : /ICCProfile (/opt/esup-signature/src/etc/srgb.icc) % Customise, et vérifier si srgb.icc est bien présent à l'emplacement indiqué. |
...
Git
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
sudo -i
apt install git |
Vérification :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
git version git version 2.20.1 |
...
Sedalib
...
| Remarque |
|---|
Afin de simplifier l'installation d'esup-signature, les librairies SEDA sont désactivées dans le code. Cette partie est donc facultative. |
...
| Info |
|---|
Sedalib est une bibliothèque fournie dans le cadre du programme Vitam : http://www.programmevitam.fr/ Cette bibliothèque permet de générer des bordereaux SIP pour la transmission des documents à un service d'archives. Les sources sont disponibles ici : https://github.com/ProgrammeVitam/sedatools |
Esup-signature est fournis avec un jar sedalib-2.
...
5.
...
0.jar.
...
| Remarque |
|---|
Depuis la version 1.10 l'installation de sedalib est transparente. |
...
PCSC, OpenSC, Driver Safenet (pour le certificat cachet)
Pour l'utilisation d'un certificat cachet d'établissement branché sur serveur, il faut installer les dépendances suivantes :
| Bloc de code | ||
|---|---|---|
| ||
apt install pcsc-tools
apt install libpcsclite1
apt install libpcsclite-dev |
L'installation d'OpenSC peut se faire via package.
| Bloc de code | ||
|---|---|---|
| ||
apt install opensc |
ou via le dépôt git du projet :
...
- Pour Linux (dans le cadre de la signature cachet d'établissement) :
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
cd /tmp
mkdir test-sedatools
cd test-sedatools
git clone https://github.com/ProgrammeVitam/java-libpst-origin.git
cd java-libpst-origin/
git checkout master
mvn clean install
(L'erreur rencontée lors de cette installation ne posent pas de problème pour la suite)
cd ..
git clone https://github.com/ProgrammeVitam/droid-origin.git
cd droid-origin
mvn clean install
cd ..
git clone https://github.com/ProgrammeVitam/sedatools.git
cd sedatools/
mvn clean install |
Ajout de sedalib dans le dépot maven
...
- wiki/Compiling-and-Installing-on-Unix-flavors
- Pour Windows : https://github.com/OpenSC/OpenSC/wiki/Windows-Quick-Start
- Pour MacOS : https://github.com/OpenSC/OpenSC/wiki/macOS-Quick-Start
Une page dédiée à OpenSC est disponible pour plus de détails : OpenSC
Facultatif : installation du driver Safenet, pour rendre plus rapides les signatures sur clé compatible Safenet (ex : Certinomis)
Les pilotes sont à télécharger ici : https://knowledge.digicert.com/general-information/how-to-download-safenet-authentication-client
| Bloc de code | ||
|---|---|---|
| ||
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
...
Création d'un user esup
Vous devez créer un utilisateur nommé esup
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
adduser esup |
...
Ajustements PCSC sur Debian 13
Sur Debian 13 (trixie), l'utilisateur système "esup" qui lance esup-signature n'a pas les droits d'accéder au certificat cachet.
Symptômes :
- Plus de certificat d'affiché dans esup-signature (/admin/certificats)
- les commandes pcsc_scan et pkcs11-tool tels que décrit dans OpenSC n'étaient plus opérantes pour cet utilisateur "esup"
- La commande journalctl -u pcscd -f fait état de problèmes de droits :
Bloc de code language shell ../src/auth.c:166:IsClientAuthorized() Process 2769 (user: 1001) is NOT authorized for action: access_pcsc ../src/winscard_svc.c:357:ContextThread() Rejected unauthorized PC/SC cli
Ajout de l'utilisateur dans le groupe pcscd
Cf https://blog.apdu.fr/posts/2025/10/pcscd-runs-as-pcscd-user/
Ajout dans /usr/lib/udev/rules.d/92-libccid.rules de
| Bloc de code | ||
|---|---|---|
| ||
# Generic CCID device (bInterfaceClass = 0x0b)
ENV{ID_USB_INTERFACES}=="*:0b0000:*", GROUP="pcscd" |
Et ajout du rôle groupe pcscd et affectation à l'utilisateur "esup"
| Bloc de code | ||
|---|---|---|
| ||
addgroup pcscd
adduser esup pcscd |
Modification au niveau de polkit, deux solutions possibles :
Désactiver polkit pour pcscd : dans /etc/default/pcscd Cf https://blog.apdu.fr/index-54.html
| Bloc de code | ||
|---|---|---|
| ||
PCSCD_ARGS=--disable-polkit |
ou
ajouter une regle polkit :
La règle doit couvrir les deux actions access_pcsc ET access_card. Si access_card est absent :
| Bloc de code | ||
|---|---|---|
| ||
cat > /etc/polkit-1/rules.d/10-pcscd.rules << 'EOF'
polkit.addRule(function(action, subject) {
if (action.id == "org.debian.pcsc-lite.access_pcsc" ||
action.id == "org.debian.pcsc-lite.access_card") {
return polkit.Result.YES;
}
});
EOF |
| Bloc de code | ||
|---|---|---|
| ||
systemctl restart polkit |
Le redémarrage de pcscd est alors nécessaire :
| Bloc de code | ||
|---|---|---|
| ||
systemctl restart pcscd.service |
...
| Astuce |
|---|
La suite ici : PostgreSQL |