web-dev-qa-db-fra.com

Quel est l'emplacement par défaut pour le magasin de clés / magasin de confiance Java?

J'écris une application qui utilise SSL. Par conséquent, j'ai un magasin de clés factice et un magasin de confiance factice que je veux fournir à mon client. Existe-t-il un dossier par défaut pour les mettre dans ma distribution? par exemple. docs, lib, bin ... etc. Où se trouve généralement le magasin de clés sur le serveur et où est-il généralement placé sur le client?

Merci

40
yura

En Java, selon le Guide de référence JSSE , il n'y a pas de valeur par défaut pour le keystore, la valeur par défaut pour le truststore est " jssecacerts, s'il existe. Sinon, cacerts ".

Quelques applications utilisent ~/.keystore comme fichier de clés par défaut, mais cela n'est pas sans problème (principalement parce que vous ne souhaiterez peut-être pas que toutes les applications exécutées par l'utilisateur utilisent ce magasin de clés de confiance).

Je suggère d'utiliser à la place des valeurs spécifiques à l'application que vous regroupez avec votre application, cela aurait tendance à être plus applicable en général.

33
Bruno

Comme l'a dit bruno, vous feriez mieux de le configurer vous-même. Voici comment je le fais. Commencez par créer un fichier de propriétés (/etc/myapp/config.properties).

javax.net.ssl.keyStore = /etc/myapp/keyStore
javax.net.ssl.keyStorePassword = 123456

Chargez ensuite les propriétés dans votre environnement à partir de votre code. Cela rend votre application configurable.

FileInputStream propFile = new FileInputStream("/etc/myapp/config.properties");
Properties p = new Properties(System.getProperties());
p.load(propFile);
System.setProperties(p);
14
Kristian Benoit