Frage

Ich kann nicht glauben, dass ich die einzige Person bin gegen dieses Problem zu laufen. Ich habe stundenlang googeln und haben kein Glück gehabt. Die Java-Sicherheits Dokumentation scheint nicht PKCS12 Zertifikate gründlich zu befassen.

ich Setup Java Ich versuche für benutzerspezifische PKCS12 Zertifikate. Unter anderem wird diese verwendet werden, so dass in Eclipse, kann ich einen Trac-Server zugreifen, die über Zertifikate authentifizieren. Ich bin der Trac Mylyn Integration Plugin für Eclipse verwenden.

Hier ist das Setup:

  • Benutzer Home-Verzeichnisse sind / home
  • Multi-User-Halterung an / Zentral
  • hat jeder Benutzer ein persönliches Zertifikat an: ~ / user.p12
  • Passwort für persönliche Zertifikate ist: pass1234
  • das Benutzer-Passwort in einer 0400-Datei in ~ / password.txt gespeichert
  • ein Read-Only Trust Store für die ca unter: /central/ca.jks
  • kein Passwort für den Trusts
  • JDK 1.6 bei /central/jdk_1.6.0 installiert
  • Eclipse-3.4 bei /central/eclipse_3.4.0 installiert
  • JAVA_HOME = / zentral / jdk_1.6.0
  • JAVA_HOME auf den JDK Standort festgelegt, da Eclipse-diesen
  • braucht
  • ECLIPSE_HOME = / zentral / eclipse_3.4.0
  • JRE lebt bei $ JAVA_HOME / jre
  • Jeder Benutzer hat eine ~ / .java.policy Datei
  • gibt es einen trac-Server läuft unter https: //trac.internal/trac
  • der trac-Server authentifiziert Zertifikate mit

Nun, ich mag jeden Benutzer müssen in die Lage einfach eine Datei ändern, die sie besitzen (wie die ~ / .java.policy Datei, zum Beispiel), und in der Lage, die zentrale Eclipse-Anwendung zu starten und den Trac-Repository zugreifen . Scheint einfach genug.

Im Moment ist die einzige Art, wie ich diese bekommen kann zu arbeiten, ist die $ ECLIPSE_HOME / eclipse.ini Datei zu bearbeiten und hinzufügen

-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, das funktioniert, aber es gibt zwei Probleme mit sich:

  • Jeder Benutzer hat seine eigenen ecipse installieren müssen. (Oder verdunkeln, dass aus einer Benutzerdatei lesen kann?)
  • Es ist Eclipse-spezifische, würde ich schließlich diese gerne als Java-Konfiguration haben.

Auch ich aus einiger Zeit zurück erinnern, dass Sie die $ JAVA_HOME / jre / lib / security / java.security Datei bearbeiten und hinzufügen

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

Aber Eclipse-scheint nicht, dass abholen. Könnte es zu einem JDK, weil meine JAVA_HOME sein, und nicht die verschachtelten JRE JDK?

Ich habe die Java PKCS # 11 Referenz gesehen , die Verweise die folgenden Eigenschaften: keyStoreURL = "NONE" Keystor = "PKCS11" keyStorePasswordURL = some_pin_url

Es gibt einen weiteren Hinweis war, sah ich, dass die Sie die ~ / .java.policy Datei bearbeiten können enthalten:

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

Aber das bekommt entweder nicht abgeholt. Vielleicht tatsächlich funktioniert es und es ist nicht aus dem gleichen Grunde zu lesen bekommt die java.security Datei nicht funktioniert, oder vielleicht auch nur funktioniert es nicht funktionieren.

Einige Systemeigenschaften die ich gesehen habe:

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"

So, gerade jetzt, ich denke, ich mit, die jedem Benutzer bin stecken ihre eigenen Eclipse-intall haben. Ich weiß, dass es wie ein kompliziertes Setup klingt, aber das soll nicht wirklich etwas mit Eclipse so weit wie das Zertifikat Setup ... es ist wirklich ein Java-Setup für anwenderspezifische Zertifikate zu tun hat.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Verwenden Sie ein benutzerspezifische Konfiguration .

  

Zur Einstellung der privaten Konfigurationsbereich Lage

     

Der Standard-Speicherort für einen privaten Konfigurationsbereich ist:

     

Benutzer-home-dir / .eclipse / _ / Konfiguration

     

Der Benutzer Home-Verzeichnis wird von der user.home Java-Systemeigenschaft bestimmt. Die Produkt-ID und die Version aus der Produktmarkerdatei .eclipseproduct unter der Eclipse erhalten installieren.

Andere Tipps

Sie können speichern Sie alle diese Informationen in eine Datei und von ihm gelesen und jede Variable im Code festgelegt werden:

System.setProperty(...);

Lassen Sie mich wissen, wenn das Ihr Problem löst.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top