proj-sms-u
Pages enfant
  • Installation des certificats esup-smsu

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Sommaire

Mise en place de l'authentification mutuelle entre front office et back office

...

Principes – définitions

Le front office et le back office communiquent via SSL en utilisant des certificats x509.

L'authentification est dite « mutuelle ». Le front office et le back office doivent chacun avoir un certificat propre qu'ils s'échangent lors de chaque connexion l'un à l'autre.

Afin d'effectuer cette authentification mutuelle deux notions sont importantes sur chaque serveur : le keystore et le truststore.

...

Lors de la mise en place de

...

la connexion front

...

->back, chaque extrémité envoi à l'autre son certificat. L'extrémité doit alors valider ce certificat.

Si le certificat reçu est issu d'une autorité de certification, des mécanismes automatiques sont déclanchés déclenchés pour valider le certificat.

Si le certificat reçu est auto-signé ou bien si le serveur dans l'incapacité d'utiliser les mécanismes automatiques de validation, le serveur va regarder dans une liste de certificats de confiance s'il y trouve ce certificat.

Keystore et truststore

Afin d'effectuer cette authentification mutuelle deux notions sont importantes sur chaque serveur tomcat/java : le keystore et le truststore.

  • Keystore : chaque serveur (front et back office) doit posséder un keystore. Le keystore contient des ensembles clé publique/clé privée/certificat

...

  • . Ces éléments sont ses identifiants.
  • Truststore : chaque serveur (front et back office) doit posséder un truststore. Le truststore contient la liste de certificats de confiance

...

  • .

Au sein d'un keystore ou d'un truststore, chaque certificat (et clés associées dans le cadre des keystore) est identifié par un alias.

Utilisation de certificats auto-signés

Dans Donc, au minimum dans le cadre d'une authentification via certificats auto-signés :

  • Chaque front office possède un keystore avec ses clés et certificat propres et un truststore contenant le certificat du back office auquel il est rattaché.
  • Le back office possède un keystore avec ses clés et certificat propres et un truststore contenant tous les certificats des front offices.

Génération

...

du keystore back office

Dans tous les web services mis en place, les front offices sont des clients (ils initient la connexion) et le back office serveur. Le certificat d'un serveur doit respecter une règle :

...

Répondez aux questions posées en respectant la règle énoncée ci-dessus.

Génération du keystore front office

Les keystore front office contiennent les certificats qui serviront à authentifier les applications appelantes au sein des back office. Chaque certificat front office doit respecter la règle suivante :

...

Répondez aux questions posées en respectant la règle énoncée ci-dessus. Ce keystore doit ensuite être ajouté à l'éventuel keystore existant

Si un keystore existe déjà dans l'environnement, par exemple au esup-portail.keystore.

Le certificat est un élément de paramétrage d'applications dans l'administration du back office. Pour extraire le certificat, exécutez la commande suivante :

Bloc de code

keytool -export -alias clientkey -keystore keystoreclient.jks -file certifclient.crt

...

il faut lui ajouter keystoreclient.jks avec la commande keytool -importkeystore (nécessite java 6)

Configuration des truststores

Un truststore contient tous les certificats de confiance d'une machine. Si la machine cible contient déjà un truststore, la manipulation consiste à ajouter un nouveau certificat au truststore existant. Le truststore client existe déjà à priori et contient le certificat du serveur CAS. Il ne faut surtout pas le supprimer.

...

  • le truststore du back office contienne tous les certificats des front offices.
  • Chaque chaque truststore client contient contienne le certificat du back office.

Extraire

...

Exécutez la commande suivante (à adapter suivant le certificat à extraire) le certificat du keystore client et l'ajouter au truststore serveur :

Bloc de code
keytool -export -alias serverkey clientkey -keystore keystoreclient.jks -file certifclient.crt
keytool -import -keystore keystoreservertruststoreserver.jks -alias certifclient -file certifserveurcertifclient.crt

Ajouter un certificat à un truststore

Exécutez la commande suivante (à adapter suivant le truststore et le certificat à importer)
Il faut ajouter le certificat du serveur au truststore du Extraire le certificat du keystore serveur et l'ajouter au truststore client :

Bloc de code
keytool -importexport -keystore truststoreclientkeystoreserver.jks -alias certifserverserverkey -file certifserveur.crt

Il faut ajouter le certificat du client au truststore du serveur :

Bloc de code

keytool -import -keystore truststoreservertruststoreclient.jks -alias certifclientcertifserver -file certifclient.crt
certifserveur.crt

Pour plus d'information sur ces commandes, voir Utilisation de certificats X509 en Java

NB : le certificat certifclient.crt est aussi un élément de paramétrage de l'application dans l'administration du back office.

Paramétrage serveur back office

...