Domanda

Non riesco a credere di essere l'unica persona a dover affrontare questo problema. Ho cercato su google per ore e non ho avuto fortuna. La documentazione sulla sicurezza di Java non sembra affrontare a fondo i certificati PKCS12.

Sto provando a configurare Java per i certificati PKCS12 specifici dell'utente. Tra l'altro, questo verrà utilizzato in modo che, in Eclipse, sia possibile accedere a un server Trac autenticato tramite certificati. Sto utilizzando il plug-in di integrazione Trac Mylyn per eclipse.

Ecco l'installazione:

  • le home directory degli utenti sono in / home
  • montaggio multiutente su / central
  • ogni utente ha un certificato personale su: ~ / user.p12
  • la password per i certificati personali è: pass1234
  • la password dell'utente è memorizzata in un file 0400 in ~ / password.txt
  • un trust store di sola lettura per il ca è su: /central/ca.jks
  • nessuna password per il truststore
  • JDK 1.6 installato in /central/jdk_1.6.0
  • Eclipse 3.4 installato in /central/eclipse_3.4.0
  • JAVA_HOME = / centrale / jdk_1.6.0
  • JAVA_HOME è impostato sulla posizione JDK perché Eclipse ne ha bisogno
  • ECLIPSE_HOME = / centrale / eclipse_3.4.0
  • JRE vive a $ JAVA_HOME / jre
  • ogni utente ha un file ~ / .java.policy
  • esiste un server trac in esecuzione su https: //trac.internal/trac
  • il server trac esegue l'autenticazione usando i certificati

Ora, voglio essere in grado di fare in modo che ciascun utente modifichi semplicemente alcuni file di sua proprietà (come il file ~ / .java.policy, ad esempio), e sia in grado di avviare l'applicazione Eclipse centrale e accedere al repository Trac . Sembra abbastanza semplice.

Al momento, l'unico modo per farlo funzionare è 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, funziona, ma ci sono due problemi:

  • Ogni utente deve avere la propria installazione di ecipse. (o può eclissare leggerlo da un file utente?)
  • È specifico di Eclipse, alla fine mi piacerebbe avere questo come configurazione Java.

Inoltre, ricordo da tempo 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 raccoglierlo. Potrebbe essere perché il mio JAVA_HOME punta a un JDK e non al JRE annidato del JDK?

Ho visto Riferimento Java PKCS # 11 che fa riferimento alle seguenti proprietà: & KeyStoreURL = quot; & NONE quot; keystoreType = quot &; & PKCS11 quot; keyStorePasswordURL = some_pin_url

C'è stato un altro riferimento che ho visto che diceva che potresti modificare il file ~ / .java.policy per includere:

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

Ma neanche quello viene raccolto. Forse funziona davvero e non viene letto per lo stesso motivo per cui il file java.security non funziona, o forse non funziona affatto.

Alcune proprietà di 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 il fatto che ogni utente abbia il proprio intall Eclipse. So che sembra una configurazione complicata, ma questo non dovrebbe avere nulla a che fare con Eclipse per quanto riguarda la configurazione del certificato ... è davvero una configurazione Java per certificati specifici dell'utente.

Qualche idea?

È stato utile?

Soluzione

Usa a configurazione specifica dell'utente .

  

Impostazione della posizione dell'area di configurazione privata

     

Il percorso predefinito per un'area di configurazione privata è:

     

user-home-dir / .eclipse / lt &; ID prodotto gt &; _ Lt &; Product-version gt &; / Configurazione

     

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

Altri suggerimenti

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

System.setProperty(...);

Fammi sapere quando questo risolve il tuo problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top