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.

...

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 le cadre d'une authentification via certificats auto-signés :

...

Paramétrage serveur back office

Le back office est déployé en tant que servlet et fourni des webservices.
La mise en place de la liaison sécurisée avec authentification du client se fait de manière assez classique :

  • soit au niveau du paramétrage du frontal apache si un frontal apache est utilisé
  • sinon au niveau du paramétrage du connecteur du serveur tomcat utilisé

Même pour les tests, il est conseillé d'utiliser un certificat issu d'une autorité de certification pour le serveur back office.
Il est aussi possible d'utiliser un certificat auto-signés, mais alors le truststore de chaque front office doit posséder le certificat du back office

...

.

Avec frontal apache

Configurer le <VirtualHost> avec les paramètres suivant (adapter les noms de fichiers à vos besoins) :

Bloc de code

SSLEngine on
SSLCertificateFile /etc/ssl/certs/sms.univ-xxx.fr.crt
SSLCertificateKeyFile /etc/ssl/private/sms.univ-xxx.fr.key
SSLCertificateChainFile /etc/ssl/certs/cachain.crt

SSLCACertificateFile /etc/ssl/certs/ca-plus-clients-smsu.crt

Sans frontal apache

Génération d'un keystore back office auto-signé

...

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 :

le CN (Common Name, correspondant à la question nom et prénom lors de la génération par keytool) doit correspondre au nom de l'application qui sera paramétrée dans le back office.

Exécutez la commande suivante :

Bloc de code

keytool -genkey -keyalg RSA -alias smsu -keystore keystore-smsu.jks

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

Si un keystore existe déjà dans l'environnement, il faut lui ajouter keystore-smsu.jks avec la commande keytool -importkeystore (nécessite java 6)

...

Configuration du truststore en cas de certificat front office auto-signé

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 front office existe déjà à priori et contient les CA standards, notamment "AddTrust External CA Root" pour TERENA. Il ne faut surtout pas les supprimer.

Les manipulations suivantes sont La manipulation suivante est à effectuer de manière à ce que : le truststore du back office contienne tous les certificats des front offices

...

auto-signés.

Extraire le certificat du keystore front office et l'ajouter au truststore back office :

Bloc de code
keytool -export -keystore keystore-smsu.jks -alias smsu -file smsu.crt
keytool -import -keystore truststore-smsuapi.jks -alias smsu -file smsu.crt

Extraire le certificat du keystore back office et l'ajouter au truststore front office (créé à partir de esup-portail.keystore ou $JAVA_HOME/jre/lib/security/cacerts) :

Bloc de code

keytool -export -keystore keystore-smsuapi.jks -alias smsuapi -file smsuapi.crt
keytool -import -keystore truststore-smsu.jks -alias smsuapi -file smsuapi.crt

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

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

Paramétrage serveur back office

Le back office est déployé en tant que servlet. La mise en place de la liaison sécurisée avec authentification du client se fait au niveau du paramétrage du connecteur du serveur tomcat utilisé pour les web services.

En mode quick start

Lors d'un déploiement en mode quick start, le paramétrage des keystore et truststore back office s'effectue via les propriétés suivantes du fichier build.properties :

...

Bloc de code
<Connector
    port="${tomcat.port}"
    maxHttpHeaderSize="8192"
    maxThreads="150"
    minSpareThreads="25"
    maxSpareThreads="75"
    enableLookups="false"
    redirectPort="8444"
    acceptCount="100"
    connectionTimeout="20000"
    disableUploadTimeout="true"
    scheme="https" secure="true"
    clientAuth="true" sslProtocol="TLS"
    keystoreFile="${tomcat.keystore}"
    keystorePass="${tomcat.keypass}"
    truststoreFile="${tomcat.truststore}"
    truststorePass="${tomcat.truststorePass}"
/>

En production

De manière similaire à la configuration quickstart server.xml ci-dessus, il faut préciser les paramètres keystoreFile, keystorePass, truststoreFile, truststorePass au du <Connector> https dans server.xml

...

Bloc de code
SET CATALINA_OPTS="-Djavax.net.ssl.keyStore=%KEY_CERT%" "-Djavax.net.ssl.keyStorePassword=%PWD_KEYSTORE%" "-Djavax.net.ssl.trustStore=%TRUST_CERT%"

Génération d'un keystore front office auto-signé

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 :

le CN (Common Name, correspondant à la question nom et prénom lors de la génération par keytool) doit correspondre au nom de l'application qui sera paramétrée dans le back office.

Exécutez la commande suivante :

Bloc de code

keytool -genkey -keyalg RSA -alias smsu -keystore keystore-smsu.jks

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

Si un keystore existe déjà dans l'environnement, il faut lui ajouter keystore-smsu.jks avec la commande keytool -importkeystore (nécessite java 6)

Configuration du truststore en cas de certificat back office auto-signé

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 front office existe déjà à priori et contient les CA standards, notamment "AddTrust External CA Root" pour TERENA. Il ne faut surtout pas les supprimer.

Les manipulations suivantes sont à effectuer de manière à ce que chaque truststore front office contienne le certificat du back office.

Extraire le certificat du keystore back office et l'ajouter au truststore front office (créé à partir de esup-portail.keystore ou $JAVA_HOME/jre/lib/security/cacerts) :

Bloc de code
keytool -export -keystore keystore-smsuapi.jks -alias smsuapi -file smsuapi.crt
keytool -import -keystore truststore-smsu.jks -alias smsuapi -file smsuapi.crt

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

Debuggage ssl

La sécurisation des connexions est un point sensible de l'environnement.
Il est possible de suivre les événements SSL de l'application en paramétrant le variable d'environnement suivante avant lancement du serveur Tomcat :

...