Maîtrisez la mise en oeuvre de HTTPS sous Tomcat 6/7 . Générez la paire de clés et le certificat du serveur. Activez le connecteur HTTPS. Cntactez une autorité de certification. Intégrez Apache HTTPD et Tomcat par HTTPS via mod_ssl
Objectifs
Comprendre le protocole HTTPS
Comprendre la mise en oeuvre https sous tomcat
Programme
Partie 1 : génération des certificats et clés de cryptage
Partie 2 : configuration du connecteur https
Partie 3 : test connecteur https
Partie 4 : Autorité de certification
Partie 5 : utiliser Apache comme frontal https
Liens utiles
Tomcat Realm-
Tomcat SSL (documentation officielle
Tutoriaux sécurité Oracle
Commandes Keytool
Durée
20 min
Qui sommes-nous ?
Contexte
Besoins : confidentialité + non répudiation
Pour crypter les échanges entre clients et serveur, HTTPS utilise une clé publique et une clé privée.
Tout ce qui est crypté avec la clé privée n’est décryptable qu’avec la clé publique, et inversement.
La clé publique est diffusée au client. La clé privée reste sur le serveur ( à protéger par l’administrateur , bien qu’elle soit déja protégée par un mot de passe).
Pour garantir l’authenticité du serveur, les techniques de cryptage introduisent la notion de certificat. Le certificat du serveur permet au client de vérifier l’identité du serveur, et d’obtenir, s’il accepte le certificat, la clé publique du serveur.
Partie 1 : génération des certificats et clés de cryptage
INFOS : pour la commande de génération des clés ( genkey ), les options par defaut sont :
— alias : mykey,
— validity : 6 mois
— keystore : répertoire personnel de l’utilisateur qui génère ce fichier.
Les valeurs obligatoires sont :
— dname (Distinguished Name)
— storepass
— keypass.
Partie 2 : configuration du connecteur https
Tomcat propose , dans sa configuration par défaut, un connecteur HTTPS préconfiguré. Cette configuration est mise en commentaire.
Décommentez la configuration du connecteur HTTPS
L’élément Connector du connecteur HTTPS possède les même attributs que les autres connecteurs de Tomcat (comme le connecteur HTTP du port 8080), mais il en a également qui lui sont propres :
— keystoreFile : permet d’identifier le chemin du fichier de stockage des clés si un autre que celui utilisé par défaut est utilisé. Le chemin peut être absolu ou relatif à CATALINA_HOME. Le fichier par défaut se nomme .keystore et se trouve dans le répertoire personnel de l’utilisateur qui génère ce fichier.
— keystorePass : mot de passe du fichier de stockage des clés. La valeur par défaut est changée
— sslProtocol : le protocole de cryptage utilisé par HTTPS. Recommandations : mette TLS si vous avez une machine virtuelle SUN/Oracle , et mettre ‘SSL’ si vous avez une machine virtuelle IBM
— clientAuth : permet d’indiquer si les clients qui veulent utiliser ce connecteur doivent ou non disposer d’un certificat client. La valeur par défaut est false.
— truststoreFile : le fichier utilisé pour valider les certificats clients
— truststorePass : le mot de passe de ce fichier
Ci-dessous un exemple de configuration d’un ‘truststore’ :
Avec ici l’ajout dans le truststore (créé à cette occasion !) d’un premier certificat associé à un des utilisateurs autorisés.
Partie 3 : test connecteur https
Démarrer le serveur Tomcat
Accédez à l’url suivante : https://localhost:8443 . Expliquez
Partie 4 : autorité de certification
Nous allons générer une demande de certificat (Certificate Signing Request : CSR) afin de la soumettre à une Autorité de certification (Ex : VeriSign)
La commande vous demande le mot de passe du store
La commande génère alors le fichier attendu
Ce fihcier est à envoyer à l’autorité de certification, qui après quelques jours enverra le certificat signé.
Vous devrez importer ce certificat :
— > ACTION 1 : télécharger le certificat racine de l’autorité de certification sur son site internet
— > ACTION 2 : importer les fichiers
IMPORTATION DU CERTIFICAT RACINE
keytool -import -alias root -keystore D:formationsecuritejavajeedemosslwwwobjiscom-keystore -trustcacerts -file
IMPORTATION DU NOUVEAU CERTIFICATSIGNE PAR l’autorité de CERTIFICATION
keytool -import -alias signobjis -keystore D:formationsecuritejavajeedemosslwwwobjiscom-keystore -trustcacerts -file
Partie 5 : utiliser Apache HTTPD en frontal de Tomcat
Il existe deux implémentation d’Apache pour fonctionner avec HTTPS :
— Apache-SSL
— Apache avec mod_ssl (recommandé)
Conclusion
Ce tutoriel vous a permis de vous familiariser avec la mise en oeuvre de SSL sous Tomcat.