Project

General

Profile

Gestion certificats

Ce mémo fait le point sur la problèmatique des certificats sur les modules EOLE.

Usage des certificats sur les modules EOLE

Sur les modules EOLE, les certificats sont utilisés pour identifier et authentifier différents services :
  • ead ;
  • eole-sso ;
  • sites et applications web desservies par apache ;
  • transmission des journaux d'application.

Deux modes de fonctionnement

Deux modes d'utilisation des certificats sont proposés par les modules EOLE.
Un mode intégré à une pki reconnue (dont les certificats racines sont intégrés aux navigateurs) et un mode indépendant reposant sur un certificat racine local ou non reconnu.

Les modes peuvent être utilisés concomitamment. Par exemple, on peut avoir un certificat intégré à une pki pour les sites desservis par apache et un certificat signé "localement" pour la transmission des journaux d'application.

Mode indépendant

C'est le mode par défaut, mis en place à l'instanciation du serveur.
Ce mode permet de fonctionner en attendant la signature de la clé publique du module par une pki, celle de Toulouse dans le cas des établissements scolaires du second degré par exemple.

Les certificats applicatifs permettent les mêmes usages qu'en mode intégré.
Par contre, en l'absence d'une pki, il n'y a pas de gestion des listes de révocations.
Les certificats applicatifs et certificats racines doivent être acceptés manuellement.

Mode intégré

C'est le mode conseillé pour les applications web en particulier, les applications faisant intervenir des logiciels clients en dehors des serveurs EOLE en général.

Actuellement, pour l'Éducation nationale, l'autorité de référence est TERENA.

La chaîne de certification a deux niveaux matérialisés par deux fichiers : DigiCertCA.crt et TrustedRoot.crt.

Configurations des applications

La configuration des applications se résume souvent à présenter la chaîne de certification à l'application dans un ou plusieurs fichiers.

La première étape consiste donc à récupérer, en plus du certificat du serveur, les certificats DigiCertCA.crt et TrustedRoot.crt et à les placer dans le répertoire /etc/ssl/certs du serveur.

Ensuite, la concaténation des certificats est la seule opération à connaître et peut être opérée, à la main, grâce à la commande openssl.

Soit une chaîne de certification définie par un certificat serveur.crt établi à l'aide d'un certificat cert_intermediaire.crt, lui-même établi à l'aide du certificat autosigné appartenant à une autorité reconnue cert_racine.crt. La concaténation de la chaîne complète prendrait la forme suivante :

openssl x509 -in serveur.crt > chaine.crt
openssl x509 -in cert_intermediaire.crt >> chaine.crt
openssl x509 -in cert_racine.crt >> chaine.crt

L'ordre de concaténation est important.

Apache
Apache dispose de deux variables dans sa configuration :
  • une pour le certificat du serveur, le certificat délivré par TERENA non concaténé (variable apache_cert) ;
  • une pour le reste de la chaîne (pas de variable au niveau creole car cette chaîne est calculée automatiquement pour peu que le fichier indiqué pour la variable précédente ne contienne pas la chaîne).

Le reste de la chaîne ne devrait pas inclure le certificat racine autosigné, normalement dans le magasin du navigateur web.

Procédure
  1. copier tous les certificats récupérés dans /etc/ssl/certs,
  2. renseigner la variable creole apache_cert avec le chemin du certificat du serveur délivré par TERENA,
  3. la chaîne des certificats intermédiaires est construite au reconfigure en concaténant les certificats présents dans /etc/ssl/certs/ constituant cette chaîne (utilisation des champs issuer et subject pour reconstituer la chaîne).
Nginx
Nginx dispose d'une variable :
  • certificat du serveur concaténé avec le reste de la chaîne.
Procédure

L'automatisation n'est pas encore intégrée dans les modules EOLE

  1. copier tous les certificats récupérés dans /etc/ssl/certs,
  2. concaténer toute la chaîne dans un nouveau fichier,
  3. renseigner la variable eole_crt avec le chemin du fichier concaténé
Eole-sso
Eole-sso dispose de 2 variables :
  • certificat du serveur concaténé avec les certificats intermédiaires (variable eolesso_cert /etc/ssl/certs/eole.crt par défaut);
  • le certificat racine autosigné (variable eolesso_ca_location).
Procédure
  1. copier tous les certificats récupérés dans /etc/ssl/certs,
  2. concaténer le certificat avec les certificats intermédiaires dans un nouveau fichier,
  3. indiquer le chemin de ce fichier dans la variable eolesso_cert,
  4. indiquer le chemin du certificat racine dans la variable eolesso_ca_location

Extensions des certificats

Certificat racine

Certificats applicatifs