2009-03-19 7 views
9

Non posso credere di essere l'unica persona a scontrarsi con questo problema. Sono stato googliling per ore e non ho avuto fortuna. La documentazione di sicurezza Java non sembra affrontare in modo approfondito i certificati PKCS12.Come impostare Java per utilizzare certificati specifici dell'utente per Eclipse?

Sto cercando di configurare Java per i certificati PKCS12 specifici dell'utente. Tra le altre cose, questo sarà usato in modo che, in Eclipse, posso accedere a un server Trac che è autenticato tramite certificati. Sto usando il plug-in di integrazione di Trac Mylyn per Eclipse.

Ecco il programma di installazione: montaggio

  • utente home directory sono in/home
  • multiutente a/centrale
  • ogni utente ha un certificato personale in: ~/user.p12
  • la password per i certificati personali è: pass1234
  • la password degli utenti è memorizzata in un file 0400 in ~/password.txt
  • un trust store di sola lettura per ca e ': /central/ca.jks
  • alcuna password per il truststore
  • JDK 1.6 installato presso /central/jdk_1.6.0
  • Eclipse 3.4 installato presso /central/eclipse_3.4.0
  • JAVA_HOME = /central/jdk_1.6.0
  • JAVA_HOME sia impostata sulla posizione JDK perché Eclipse ha bisogno di questo
  • ECLIPSE_HOME =/centrale/eclipse_3.4.0
  • JRE vive a $ JAVA_HOME/jre
  • ogni utente ha un ~/.ja file di va.policy
  • c'è un server in esecuzione trac https://trac.internal/trac
  • server trac autenticazione tramite certificati

Ora, voglio essere in grado di avere ogni utente semplicemente modificare alcuni file di cui sono proprietari (come il file ~/.java.policy, ad esempio), ed essere in grado di avviare l'applicazione Eclipse centrale e accedere al repository Trac. Sembra abbastanza semplice.

In questo momento, l'unico modo in cui posso arrivare a questo lavoro è quello di modificare il file $ ECLIPSE_HOME/eclipse.ini e aggiungere

-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, che funziona, ma ci sono due problemi con esso:

  • Ogni utente deve avere la propria installazione di ecipse. (o può eclissi leggere quello da un file utente?)
  • È specifico di Eclipse, mi piacerebbe in ultima analisi avere questo come una configurazione Java.

Inoltre, mi ricordo di qualche tempo fa che è possibile modificare il file $ JAVA_HOME/jre/lib/security/java.security e aggiungere

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

Ma Eclipse non sembra raccogliere che su. Potrebbe essere perché il mio JAVA_HOME punta a un JDK, e non al JRE annidato del JDK?

Ho visto il Java PKCS#11 Reference che fa riferimento le seguenti proprietà: keyStoreURL = "none" keystoreType = "PKCS11" keyStorePasswordURL = some_pin_url

Ci fu un altro riferimento ho visto che ha detto è possibile modificare il file ~/File .java.policy da includere:

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

Ma questo non viene rilevato. Forse funziona davvero e non viene letto per la stessa ragione per cui il file java.security non funziona, o forse non funziona affatto.

Alcune proprietà del sistema che ho visto:

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" 

Quindi, in questo momento, credo di essere bloccato con dover ogni utente di avere la propria intall Eclipse. So che sembra una configurazione complicata, ma questo non dovrebbe avere nulla a che fare con Eclipse per quanto riguarda l'installazione del certificato ... è in realtà una configurazione Java per i certificati specifici dell'utente.

Qualche idea?

risposta

5

Utilizzare uno user-specific configuration.

Impostazione della località privato zona di configurazione

La posizione predefinita per un area di configurazione privata è:

user-home-dir/.eclipse/< ID prodotto > _ < prodotto-versione >/configurazione

La directory home dell'utente è determinata dalla proprietà di sistema utente home.home. L'ID del prodotto e la versione sono ottenuti dal file marcatore del prodotto .eclipseproduct sotto l'installazione di Eclipse.

0

è possibile memorizzare tutte quelle informazioni in un file e leggere da esso e impostare ogni variabile nel codice utilizzando:

System.setProperty(...); 

Fammi sapere quando questo risolve il problema.

+0

Non c'è alcun codice, è solo un plugin di eclissi così posso accedere a trac tramite eclipse. –

Problemi correlati