| Sommaire |
|---|
Références
- Documentation de keytool
- FAQ de l'IGC du CRU, en particulier, les documents keystore1 et keystore2
Les magasins de clés (KeyStores) de Java
...
Un utilitaire GUI est fourni avec le jdk pour gérer les keystores : policytool.
| Info | ||
|---|---|---|
| ||
$JAVA_HOME/jre/lib/security/cacerts est le magasin de clé global de Java, mais keytool peut manipuler n'importe quel magasin. |
...
| Bloc de code |
|---|
% keytool -delete -keystore <keystore> -alias <alias> |
Importation d'une clé privée
Il est parfois nécessaire d'avoir une clé privée dans le keystore, notamment quand tomcat doit répondre en https (exemple : ent avec load balancing nécessitant esup.real.port.https).
keytool ne permet pas l'import d'une clé privée. Par contre, depuis Java 6, keytool/tomcat gèrent le format PKCS12. On peut donc soit donner directement un PKCS12 à tomcat, soit faire :
| Bloc de code |
|---|
% openssl pkcs12 -export -in xxx.univ-yyy.fr.crt -inkey xxx.univ-yyy.fr.key -out xxx.univ-yyy.fr.p12 -name xxx.univ-yyy.fr -CAfile ca.crt -chain
% keytool -importkeystore -srckeystore xxx.univ-yyy.fr.p12 -srcstoretype pkcs12 -srcstorepass changeit -srcalias xxx.univ-yyy.fr -destkeystore CAS.keystore -deststoretype jks -deststorepass changeit
|
nb : dans le cas d'un self-signed certificate, on peut supprimer les options "-CAfile ca.crt -chain"
Correspondence entre apache mod_ssl et truststore/keystore
- keyStore : SSLCertificateFile + SSLCertificateKeyFile + SSLCertificateChainFile
- trustStore : SSLCACertificateFile
Précisions :
- si SSLCertificateChainFile n'est pas donné, apache utilise SSLCACertificateFile
- SSLCACertificateFile est utilisé avec SSLVerifyClient
- le trustStore est utilisé quand java se connecte en https
- le keyStore est utilisé par tomcat pour écouter en https