Onglet Certificats ssl : gestion des certificats SSL
- Certificat de type Let's Encrypt
- Certificat de type autosigné et manuel
- Certificats par défaut
- Mise en place d'un certificat particulier
- Paramètres SSL
- Sujet du certificat
- Nom DNS alternatif
- Création de nouveaux certificats
- Re-génération des certificats
- Création de nouveaux certificats
- Re-génération des certificats
- Obtention d'un certificat signé par l'IGC de l’Éducation nationale
- Certificats intermédiaires
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 Let's Encrypt[1] 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.
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 fait au nom résultant de la concaténation du nom de la machine et du nom de DNS local.
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
webroo
t.
Nom DNS supplémentaires
Il est possible de faire des requêtes supplémentaires pour d'autres noms DNS connus d'Internet 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
.
Certificat de type autosigné et manuel
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
.
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 trois variables dans l'onglet Certificats ssl
de l'interface de configuration du module.
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.
Remarque
Sur un module dont la version est supérieure ou égale à 2.6.2, la configuration des chemins est proposée dans l'onglet Général
.
Attention
Le répertoire /etc/ssl/local_ca/
accueille uniquement des certificats CA.
Paramètres SSL
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[3]) à 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[4] 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=)
Truc & astuce
La commande suivante permet d'afficher les DN de l'émetteur et du sujet du certificat généré :
root@dc1:~# openssl x509 -in /etc/ssl/certs/eole.crt -noout -issuer -subject
issuer=C = FR, O = Ministere Education Nationale (MENESR), OU = 110 043 015, OU = ac-test, CN = CA-dc1.domseth.ac-test.fr
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
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
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
Obtention d'un certificat signé par l'IGC de l’Éducation nationale
Étapes à suivre :
récupérer la requête du certificat située dans le répertoire
/etc/ssl/req/
:eole.p10
;se connecter sur l'interface web de demande des certificats et suivre la procédure ;
récupérer le certificat depuis l'interface (copier/coller dans un fichier) ;
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
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 :
CA-ROOT
CA-SUB1
signée parCA-ROOT
CA-SUB2
signée parCA-SUB1
mon-serveur
signé parCA-SUB1
cat mon-serveur.crt ca-sub2.crt ca-sub1.crt > /etc/ssl/cert/mon-serveur.crt