Onglet Certificats ssl : gestion des certificats SSL

La gestion des certificats a été standardisée pour faciliter leur mise en œuvre.

Ils sont désormais gérés par l'intermédiaire des outils Creole.

Certificats par défaut

Un certain nombre de certificats sont mis en place lors de la mise en œuvre d'un module EOLE :

  • /etc/ssl/certs/ca_local.crt : autorité de certification propre au serveur (certificats auto-signés) ;
  • /etc/ssl/private/ca.key : clef privée de la CA ci-dessus ;
  • /etc/ssl/certs/ACInfraEducation.pem : contient les certificats de la chaîne de certification de l'Éducation nationale (igca/education/infrastructure) ;
  • /etc/ssl/req/eole.p10 : requête de certificat au format pkcs10, ce fichier contient l'ensemble des informations nécessaires à la génération d'un certificat ;
  • /etc/ssl/certs/eole.crt : certificat serveur généré par la CA locale, il est utilisé par les applications (apache, ead2, eole-sso, ...) ;
  • /etc/ssl/certs/eole.key : clé du certificat serveur ci-dessus.

Après génération de la CA locale, un fichier /etc/ssl/certs/ca.crt est créé qui regroupe les certificats suivants :

  • ca_local.crt ;
  • ACInfraEducation.pem ;
  • tout certificat présent dans le répertoire /etc/ssl/local_ca/

Détermination du nom de serveur (commonName) dans le certificat

Le nom du sujet auquel le certificat s'applique est déterminé de la façon suivante (important pour éviter les avertissements dans les navigateurs) :

  • si la variable ssl_server_name est définie dans l'interface de configuration du module (onglet Certifs ssl -> Nom DNS du serveur), elle est utilisée comme nom de serveur dans les certificats ;

  • sinon, si un nom de domaine académique est renseigné, le nom sera : nom_machine.numero_etab.nom_domaine_academique (exemple : amon_monetab.0210001A.mon_dom_acad.fr) ;

  • le cas échéant, on utilise : nom_machine.numero_etab.debut(nom_academie).min(ssl_country_name) (exemple : amon_monetab.0210001A.ac-dijon.fr).

Mise en place d'un certificat particulier

Pour que les services d'un module EOLE utilisent un certificat particulier (par exemple, certificat signé par une autorité tierce), il faut modifier deux variables dans l'onglet Certificats ssl de l'interface de configuration du module.

  • Nom long du certificat SSL par défaut (server_cert) : chemin d'un certificat au format PEM à utiliser pour les services ;
  • Nom long de la clé privée du certificat SSL par défaut (server_key) : chemin de la clé privée correspondante (éventuellement dans le même fichier).

Dans le cas d'un certificat signé par une autorité externe, copier le certificat de la CA en question dans /etc/ssl/local_ca/ pour qu'il soit pris en compte automatiquement (non nécessaire pour les certificats de l'IGC nationale).

Le répertoire /etc/ssl/certs/ accueille le fichier de certificat issu de la CA interne ainsi que la clé privée correspondant au certificat.

Il faut déclarer les bons chemins dans l'interface de configuration du module.

Pour appliquer les modifications, utilisez la commande reconfigure.

Si les certificats configurés ne sont pas trouvés, ils sont générés à partir de la CA locale.

Attention

Le répertoire /etc/ssl/local_ca/ n'accueille que des certificats CA.

Création de nouveaux certificats

Le script /usr/share/creole/gen_certif.py permet de générer rapidement un nouveau certificat SSL.

ExempleGénération d'un certificat avec gen_certif.py

root@eole:~# /usr/share/creole/gen_certif.py -fc /etc/ssl/certs/test.crt

Generation du certificat machine

* Certificat /etc/ssl/certs/test.crt généré

Obtention d'un certificat signé par l'IGC de l’Éducation nationale

Étapes à suivre :

  1. récupérer la requête du certificat située dans le répertoire /etc/ssl/req/ : eole.p10 ;

  2. se connecter sur l'interface web de demande des certificats et suivre la procédure ;

  3. récupérer le certificat depuis l'interface (copier/coller dans un fichier) ;

  4. copier le fichier dans le répertoire /etc/ssl/certs/.

Attention

Seuls les ISR/OSR des académies sont accrédités pour effectuer les demandes.

Certificats intermédiaires

En attendant que la prise en compte des certificats intermédiaires soit automatisée pour l'ensemble des services de base (fixme #13362), les manipulations nécessaires pour éviter des avertissements dans les navigateurs sont documentées dans la page wiki suivante : https://dev-eole.ac-dijon.fr/projects/modules-eole/wiki/Gestion_certificats