Comment configurer Java pour utiliser des certificats spécifiques à l'utilisateur pour Eclipse?

StackOverflow https://stackoverflow.com/questions/663890

Question

Je ne peux pas croire que je suis la seule personne à affronter ce problème. Je suis sur Google pendant des heures et je n'ai pas eu de chance. La documentation de sécurité Java ne semble pas traiter correctement les certificats PKCS12.

J'essaie de configurer Java pour les certificats PKCS12 spécifiques à l'utilisateur. Entre autres choses, cela sera utilisé pour que, dans Eclipse, je puisse accéder à un serveur Trac authentifié via des certificats. J'utilise le plugin d'intégration Trac Mylyn pour eclipse.

Voici la configuration:

  • les répertoires personnels des utilisateurs se trouvent dans / home
  • montage multi-utilisateur à / central
  • chaque utilisateur a un certificat personnel sur: ~ / user.p12
  • le mot de passe pour les certificats personnels est: pass1234
  • le mot de passe de l'utilisateur est stocké dans un fichier 0400 dans ~ / password.txt
  • un magasin de confiance en lecture seule pour le nom de domaine est à: /central/ca.jks
  • aucun mot de passe pour le magasin de clés de confiance
  • JDK 1.6 installé sur /central/jdk_1.6.0
  • Eclipse 3.4 installé dans /central/eclipse_3.4.0
  • JAVA_HOME = / central / jdk_1.6.0
  • JAVA_HOME est défini sur l'emplacement du JDK car Eclipse en a besoin
  • ECLIPSE_HOME = / central / eclipse_3.4.0
  • JRE vit à $ JAVA_HOME / jre
  • chaque utilisateur a un fichier ~ / .java.policy
  • Un serveur Trac est en cours d’exécution à l'adresse https: //trac.internal/trac
  • .
  • le serveur trac s'authentifie à l'aide de certificats

Désormais, je souhaite que chaque utilisateur modifie simplement un fichier qu'il possède (comme le fichier ~ / .java.policy, par exemple) et puisse lancer l'application Eclipse centrale et accéder au référentiel Trac. . Cela semble assez simple.

Pour le moment, la seule façon de faire fonctionner cela est d’éditer le fichier $ ECLIPSE_HOME / eclipse.ini et d’ajouter

.
-Djavax.net.ssl.keyStore="/home/user/user.p12"
-Djavax.net.ssl.keyStoreType="PKCS12"
-Djavax.net.ssl.keyStorePassword="pass1234"
-Djavax.net.ssl.trustStore="/central/ca.jks"

Ok, ça marche, mais ça pose deux problèmes:

  • Chaque utilisateur doit avoir sa propre installation ecipse. (ou eclipse peut-il lire cela dans un fichier utilisateur?)
  • C’est spécifique à Eclipse, je voudrais au final l’avoir sous forme de configuration Java.

De plus, je me souviens que vous pouvez éditer le fichier $ JAVA_HOME / jre / lib / security / java.security et ajouter

.
keystore=/home/user/user.p12
keystore.type=PKCS12
keystore.password=pass1234
truststore=/central/ca.jks

Mais Eclipse ne semble pas le comprendre. Cela pourrait-il être dû au fait que mon JAVA_HOME pointe vers un JDK et non vers le JRE imbriqué du JDK?

J'ai vu la Référence Java PKCS # 11 qui référence les propriétés suivantes: keyStoreURL = " NONE " keyStoreType = " PKCS11 " keyStorePasswordURL = some_pin_url

J'ai vu une autre référence qui disait que vous pouviez éditer le fichier ~ / .java.policy pour inclure:

keyStore "file:///home/user/user.p12", "PKCS12", "SunJSSE";
keyStorePasswordUrl "file:///home/user/password.txt";

Mais cela n'est pas non plus pris en compte. Peut-être que cela fonctionne réellement et qu'il ne se lit pas pour la même raison que le fichier java.security ne fonctionne pas, ou peut-être ne fonctionne-t-il pas du tout.

Certaines propriétés système que j'ai vues:

javax.net.ssl.keyStore="/home/user/user.p12"
javax.net.ssl.keyStoreType="PKCS12"
javax.net.ssl.keyStorePassword="password"
javax.net.ssl.keyStoreProvider="SunJSSE"
javax.net.ssl.trustStore="/home/user/ca.jks"
javax.net.ssl.trustStoreType="JKS"
javax.net.ssl.trustStorePassword=""
javax.net.ssl.trustStoreProvider="Sun"

Donc, pour le moment, je suppose que chaque utilisateur doit avoir sa propre installation Eclipse. Je sais que cela ressemble à une configuration compliquée, mais cela ne devrait en réalité rien avoir à faire avec Eclipse en ce qui concerne la configuration du certificat ... c’est vraiment une configuration Java pour les certificats spécifiques à l’utilisateur.

Des idées?

Était-ce utile?

La solution

Utilisez un configuration spécifique à l'utilisateur .

  

Définition de l'emplacement de la zone de configuration privée

     

L'emplacement par défaut d'une zone de configuration privée est:

     

rép_utilisateur-home / .eclipse / < identifiant-produit > _ < version-produit > / configuration

     

Le répertoire personnel de l'utilisateur est déterminé par la propriété système Java de l'utilisateur.home. L'identifiant et la version du produit sont obtenus à partir du fichier de marqueurs .eclipseproduct, sous l'installation d'Eclipse.

Autres conseils

vous pouvez stocker toutes ces informations dans un fichier, les lire et définir chaque variable dans le code avec:

System.setProperty(...);

Faites-moi savoir quand cela résoudra votre problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top