Projet

Général

Profil

Gestion certificats » Historique » Version 4

Benjamin Bohard, 01/10/2015 11:15

1 1 Benjamin Bohard
h1. Gestion certificats
2 1 Benjamin Bohard
3 1 Benjamin Bohard
Ce mémo fait le point sur la problèmatique des certificats sur les modules EOLE.
4 1 Benjamin Bohard
5 1 Benjamin Bohard
h2. Usage des certificats sur les modules EOLE
6 1 Benjamin Bohard
7 1 Benjamin Bohard
Sur les modules EOLE, les certificats sont utilisés pour identifier et authentifier différents services :
8 1 Benjamin Bohard
* ead ;
9 1 Benjamin Bohard
* eole-sso ;
10 1 Benjamin Bohard
* sites et applications web desservies par apache ;
11 1 Benjamin Bohard
* transmission des journaux d'application.
12 1 Benjamin Bohard
13 1 Benjamin Bohard
h2. Deux modes de fonctionnement
14 1 Benjamin Bohard
15 1 Benjamin Bohard
Deux modes d'utilisation des certificats sont proposés par les modules EOLE.
16 1 Benjamin Bohard
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.
17 1 Benjamin Bohard
18 1 Benjamin Bohard
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.
19 1 Benjamin Bohard
20 1 Benjamin Bohard
h3. Mode indépendant
21 1 Benjamin Bohard
22 1 Benjamin Bohard
C'est le mode par défaut, mis en place à l'instanciation du serveur.
23 4 Benjamin Bohard
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-.
24 1 Benjamin Bohard
25 1 Benjamin Bohard
Les certificats applicatifs permettent les mêmes usages qu'en mode intégré.
26 1 Benjamin Bohard
Par contre, en l'absence d'une pki, il n'y a pas de gestion des listes de révocations.
27 1 Benjamin Bohard
Les certificats applicatifs et certificats racines doivent être acceptés manuellement.
28 1 Benjamin Bohard
29 1 Benjamin Bohard
h3. Mode intégré
30 1 Benjamin Bohard
31 2 Benjamin Bohard
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.
32 2 Benjamin Bohard
33 2 Benjamin Bohard
Actuellement, pour l'Éducation nationale, l'autorité de référence est TERENA. La chaîne de certification a deux niveaux.
34 2 Benjamin Bohard
35 2 Benjamin Bohard
h4. Configurations des applications
36 2 Benjamin Bohard
37 2 Benjamin Bohard
La configuration des applications se résume souvent à présenter la chaîne de certification à l'application dans un ou plusieurs fichiers.
38 2 Benjamin Bohard
39 2 Benjamin Bohard
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.
40 2 Benjamin Bohard
41 2 Benjamin Bohard
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 :
42 2 Benjamin Bohard
43 2 Benjamin Bohard
<pre>
44 2 Benjamin Bohard
openssl x509 -in serveur.crt > chaine.crt
45 2 Benjamin Bohard
openssl x509 -in cert_intermediaire.crt >> chaine.crt
46 2 Benjamin Bohard
openssl x509 -in cert_racine.crt >> chaine.crt
47 2 Benjamin Bohard
</pre>
48 2 Benjamin Bohard
49 2 Benjamin Bohard
L'ordre de concaténation est important.
50 2 Benjamin Bohard
51 2 Benjamin Bohard
h5. Apache
52 2 Benjamin Bohard
53 2 Benjamin Bohard
Apache dispose de deux variables : 
54 3 Benjamin Bohard
* une pour le certificat du serveur, le certificat délivré par TERENA non concaténé (variable apache_cert) ;
55 3 Benjamin Bohard
* 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).
56 2 Benjamin Bohard
57 2 Benjamin Bohard
Le reste de la chaîne ne devrait pas inclure le certificat racine autosigné, normalement dans le magasin du navigateur web.
58 2 Benjamin Bohard
59 2 Benjamin Bohard
h5. Nginx
60 2 Benjamin Bohard
61 2 Benjamin Bohard
Nginx dispose d'une variable :
62 2 Benjamin Bohard
* certificat du serveur concaténé avec le reste de la chaîne.
63 2 Benjamin Bohard
64 2 Benjamin Bohard
h5. Eole-sso
65 2 Benjamin Bohard
66 2 Benjamin Bohard
Eole-sso dispose de 2 variables :
67 2 Benjamin Bohard
* certificat du serveur concaténé avec les certificats intermédiaires (variable eolesso_cert /etc/ssl/certs/eole.crt par défaut);
68 2 Benjamin Bohard
* le certificat racine autosigné (variable eolesso_ca_location).
69 2 Benjamin Bohard
70 1 Benjamin Bohard
h2. Extensions des certificats
71 1 Benjamin Bohard
72 1 Benjamin Bohard
h3. Certificat racine
73 1 Benjamin Bohard
74 1 Benjamin Bohard
h3. Certificats applicatifs