Onglet Certificats ssl : gestion des certificats SSL

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

Le choix du type de certificat à mettre en place sur le serveur s'effectue dans l'onglet Général.

Certificat de type Let's Encrypt

L'autorité de certification[1] Let's Encrypt[2] permet de mettre en place, gratuitement, des certificats dont la distribution et le renouvellement sont automatisés.

Vous pouvez à présent gérer des certificats Let's Encrypt pour des serveurs accessibles depuis Internet ou au travers d'un proxy inverse.

Nom DNS supplémentaires

Il est possible de faire des requêtes supplémentaires pour d'autres noms DNS connus d'Internet que celui du serveur en renseignant la variable Nom de domaines supplémentaires.

Remarque

Il y aura autant de certificats supplémentaires que de noms DNS déclarés dans la variable Nom de domaines supplémentaires.

Serveurs accessibles depuis Internet ou au travers d'un proxy inverse

L'utilisation de certificats Let's Encrypt requiert l'utilisation de noms DNS connus d'Internet.

Le certificat sera créé avec le nom DNS résultant de la concaténation du nom de la machine et du nom de DNS du réseau local saisis dans l'onglet Général.

Seule la variable Mode de fonctionnement du client Let's Encrypt nécessite un paramétrage en fonction de l'accessibilité du serveur :

  • accessible depuis Internet → utiliser la valeur standalone ;

  • accessible au travers d'un proxy inverse → utiliser la valeur webroot.

Certificat de type manuel

Le type manuel vous permet d'utiliser le certificat de votre choix (en général, un certificat signé par une autorité tierce).

Pour que les services d'un module EOLE l'utilisent, il faut placer vos fichiers aux endroits définis au préalable dans la section Choix du certificat SSL de l'onglet Général.

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

Pour appliquer les modifications, utiliser la commande reconfigure.

Attention

Le répertoire /etc/ssl/local_ca/ accueille uniquement des certificats CA.

Attention

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

Certificats intermédiaires

Si la chaîne de certification du serveur contient une ou plusieurs autorités intermédiaires, vous devez concaténer le certificat du serveur avec les certificats des autorités intermédiaires dans l'ordre de la chaîne de certification vers l'autorité racine.

Exemple

Par exemple, pour une chaîne de certification suivante :

  1. CA-ROOT

  2. CA-SUB1 signée par CA-ROOT

  3. CA-SUB2 signée par CA-SUB1

  4. mon-serveur signé par CA-SUB1

cat mon-serveur.crt ca-sub2.crt ca-sub1.crt > /etc/ssl/cert/mon-serveur.crt

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

Certificat de type autosigné

En mode autosigné le certificat est généré localement et signé par une autorité de certification[1] locale.

Paramètres SSL

Les variables de la section Paramètres SSL permettent de personnaliser la configuration OpenSSL[3] à utiliser pour générer les certificats auto-signés.

Taille de la clé

Cette variable permet de définir le paramètre default_bits de la section [req] du fichier de configuration d'OpenSSL.

Par défaut la taille de la clé est de 2048 bits.

Durée de validité du certificat

Cette variable permet de définir le paramètre default_days des sections [ CA_default ] et [req] du fichier de configuration d'OpenSSL.

Par défaut la CA et les certificats générés expirent au bout de 3 ans (1096 jours).

Sujet du certificat

Les variables de la section Subject (DN) permettent de configurer le nom complet du serveur (distinguished name[4]) à utiliser pour générer les certificats auto-signés.

Nom du pays (C=)

Cette variable permet de définir le paramètre countryName de la section [req_distinguished_name] du fichier de configuration d'OpenSSL.

Il s'agit du code du nom de pays sur deux lettres, par défaut FR pour la France.

Nom de l'organisation (O=)

Cette variable permet de définir le paramètre organizationName de la section [req_distinguished_name] du fichier de configuration d'OpenSSL.

Il s'agit du nom de la structure, par défaut Ministere Education Nationale (MENESR) dans le cadre de l'Éducation Nationale.

Nom de l'unité de l'organisation (OU=)

Cette variable est utilisée pour ajouter des unités organisationnelles[5] dans le paramètre organizationalUnitName de la section [req_distinguished_name] du fichier de configuration d'OpenSSL.

La valeur par défaut 110 043 015 représente le numéro SIREN du Ministère de l'Éducation Nationale.

Nom DNS du serveur (CN=)

Cette variable permet de définir le paramètre commonName de la section [req_distinguished_name] du fichier de configuration d'OpenSSL.

Le CN[6] du serveur est pré-renseigné à l'aide des informations fournies dans l'onglet Général.

Truc & astuce

La commande suivante permet d'afficher les DN de l'émetteur et du sujet du certificat généré :

1
root@dc1:~# openssl x509 -in /etc/ssl/certs/eole.crt -noout -issuer -subject
2
issuer=C = FR, O = Ministere Education Nationale (MENESR), OU = 110 043 015, OU = ac-test, CN = CA-dc1.domseth.ac-test.fr
3
subject=C = FR, O = Ministere Education Nationale (MENESR), OU = 110 043 015, OU = ac-test, CN = dc1.domseth.ac-test.fr

Nom DNS alternatif

La section Nom Alternatif de la machine permet de renseigner tous les noms DNS associés au serveur.

Nom DNS alternatif du serveur

Cette variable permet d'ajouter tous les noms DNS nécessaires dans la section [ ALIASES ] du fichier de configuration d'OpenSSL.

Elle doit notamment contenir les noms de domaine utilisés pour accéder aux applications web (l'EAD[7] par exemple).

Attention

Pour que les modifications soient prises en compte, il faut reconfigurer le serveur puis re-générer les certificats.

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é

Re-génération des certificats

Si les certificats auto-signés sont expirés ou si ils ne sont plus adaptés à la configuration du serveur, il est possible de les re-générer à l'aide de la commande suivante :

/usr/share/creole/gen_certif.py -f

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/private/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.

Truc & astuce

Les certificats émis par l'IGC/A[8] suivants sont déployés par défaut sur les modules EOLE :

  • menesr/igca.crt pour le Ministère de l'Éducation nationale ;
  • medde/antsv3racine.crt pour le Ministère de l'Ecologie, de l'Energie, du Développement durable et de la Mer.

Pour plus d'informations sur ces certificats, consulter le site de l'ANSSI[9] : https://www.ssi.gouv.fr/administration/services-securises/igca/certificats-emis-par-ligca-rsa-2048/.

Attention

À partir d'EOLE 2.7.1, la chaîne de certificats dépréciée ACInfraEducation.crt n'est plus fournie.