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?
Non c'è alcun codice, è solo un plugin di eclissi così posso accedere a trac tramite eclipse. –