Conception et mise en oeuvre d'un Service d'Archivage
Tomcat - Sécurité
Creation d'un certificat avec OpenSSL
Génération de la clé publique sur (2048 bits) :
[root@localhost root]# openssl genrsa -out cle.pem 2048
Generating RSA private key, 2048 bit long modulus
.......................................................+++
................................................................................+++
e is 65537 (0x10001)
Génération du certificat utilisant cette clé :
[root@localhost root]# openssl req -new -x509 -key cle.pem -out cert.pem -days 365
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
- - - - -
Country Name (2 letter code) [GB]:FR
State or Province Name (full name) [Berkshire]:RENNES
Locality Name (eg, city) [Newbury]:RENNES
Organization Name (eg, company) [My Company Ltd]:ORGANISATION
Organizational Unit Name (eg, section) []:ORGANISATION
Common Name (eg, your name or your server's hostname) []:APPLICATION
Email Address []:
Convertion du format PEM en PKCS12 pour Tomcat :
[root@localhost root]# openssl pkcs12 -export -in cert.pem -inkey cle.pem -out cert.p12 -name tomcat
Enter Export Password: eppwd
Verifying - Enter Export Password: eppwd
Modification du connecteur Tomcat en conséquence :
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreType="PKCS12"
keystoreFile="/etc/ssl/cert.p12" keystorePass="eppwd"/>
Remarque :
Si vous avez nommé votre certificat .keystore et placé dans votre
homedir, vous n'êtes pas obligé de spécifier l'attribut keystoreFile
(par défaut Tomcat ira chercher le fichier au bon endroit).
Creation d'un certificat avec Java keytool
Création du certificat auto-signé :
[root@localhost root]# $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/ssl/keystore
Tapez le mot de passe du Keystore : eppwd
Mot de passe de Keystore trop court, il doit compter au moins 6 caractères
Tapez le mot de passe du Keystore : mdpkeystore
Quels sont vos prénom et nom ?
[Unknown] : ARNAUD LE NORCY
Quel est le nom de votre unité organisationnelle ?
[Unknown] : ORGANISATION
Quelle est le nom de votre organisation ?
[Unknown] : ORGANISATION
Quel est le nom de votre ville de résidence ?
[Unknown] : RENNES
Quel est le nom de votre état ou province ?
[Unknown] : ILLE ET VILAINE
Quel est le code de pays à deux lettres pour cette unité ?
[Unknown] : FR
Est-ce CN=ARNAUD LE NORCY, OU=ORGANISATION, O=ORGANISATION, L=RENNES, ST=ILLE ET VILAINE, C=FR ?
[non] : oui
Spécifiez le mot de passe de la clé pour <tomcat>
(appuyez sur Entrée s'il s'agit du mot de passe du Keystore) :
Modification du connecteur Tomcat en conséquence :
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/ssl/keystore"
keystorePass="mdpkeystore"/>
Remarques :
- Si comme mot de passe du keystore on indique : changeit, alors
il est inutile de l'indiquer dans le fichier de conf (server.xml).
- Si comme mot de passe du keystore on indique : changeit et que
l'on met autre chose comme clé pour <tomcat>, le cerficat ne marche
pas avec Tomcat (c'est à dire qu'en mettant l'un ou l'autre des mots de passe,
ou aucun, dans l'attribut keystorePass, une exception est levée [ ==> à
voir...])
- D'ailleurs, si l'on met deux mots de passe différents (pour le mdp du keystore
et pour la clé pour <tomcat>), je n'ai pas réussi à faire lire le certificat
par Tomcat...
Bilan : choisir le même mot de passe pour les 2 (mettre changeit
si on ne veut pas le mentionner dans le fichier de conf mais à déconseiller
toute de même).
Quelques remarques générales
- Les droits du fichier $TOMCAT_HOME/conf/tomcat-users.xml
sont modifiés à chaque lancement/redémarrage de Tomcat en 644 (rw- r-- r--).
Quelques liens
MAJ le 20/06/2005