2009-03-19 10 views
9

Nie mogę uwierzyć, że jestem jedyną osobą, która boryka się z tym problemem. Odwiedzam go od wielu godzin i nie mam szczęścia. Dokumentacja bezpieczeństwa Java nie wygląda dokładnie na certyfikaty PKCS12.Jak skonfigurować Javę, aby używała certyfikatów określonych dla Eclipse?

Próbuję skonfigurować Javę dla określonych certyfikatów PKCS12 użytkownika. Między innymi będzie to używane, aby w Eclipse uzyskać dostęp do serwera Trac uwierzytelnionego za pomocą certyfikatów. Korzystam z wtyczki Trac Mylyn do zaćmienia.

Oto konfiguracja:

  • użytkownik katalogi domowe są w/home
  • wielu użytkowników zamontować w/centralny
  • każdy użytkownik posiada certyfikat osobisty pod adresem: ~/user.p12
  • hasło dla certyfikatów osobistych jest: pass1234
  • hasła użytkowników są przechowywane w pliku 0400 w ~/password.txt
  • sklep zaufanie tylko do odczytu CA jest pod adresem: /central/ca.jks
  • nie hasło truststore
  • JDK 1.6 zainstalowanego na /central/jdk_1.6.0
  • Eclipse 3.4 zainstalowanego na /central/eclipse_3.4.0
  • JAVA_HOME = /central/jdk_1.6.0
  • JAVA_HOME jest ustawiony na lokalizację JDK ponieważ Eclipse potrzebuje tego
  • ECLIPSE_HOME =/centralna/eclipse_3.4.0
  • JRE mieszka w $ JAVA_HOME/jre
  • każdy użytkownik ma ~/.ja Plik va.policy
  • znajduje się serwer trac działa na https://trac.internal/trac
  • serwer trac uwierzytelnia przy użyciu certyfikatów

Teraz chcę, aby móc mieć każdy użytkownik po prostu zmodyfikować jakiś plik, że własne (jak na przykład plik ~/.java.policy) i być w stanie uruchomić centralną aplikację Eclipse i uzyskać dostęp do repozytorium Trac. Wydaje się dość proste.

Teraz jedynym sposobem mogę uzyskać to do pracy jest, aby edytować/eclipse.ini plik $ ECLIPSE_HOME i dodać

-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, że działa, ale istnieją dwa problemy z tym:

  • Każdy użytkownik musi mieć własną instalację ekipsu. (lub czy zaćmienie może to odczytać z pliku użytkownika?)
  • Jest to specyficzne dla Eclipse, ostatecznie chciałbym mieć to jako konfigurację Java.

Również pamiętam od jakiegoś czasu z powrotem, które można edytować/Bezpieczeństwo pliku $ JAVA_HOME/jre/lib/java.security i dodać

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

Ale Eclipse nie wydaje się, że pick w górę. Czy to możliwe, ponieważ mój JAVA_HOME wskazuje na JDK, a nie na zagnieżdżone JRE JDK?

Widziałem Java PKCS#11 Reference odwołujący następujące właściwości: keyStoreURL = "none" keyStoreType = "pkcs11" keyStorePasswordURL = some_pin_url

Nie było innego odniesienia Widziałem, że wspomniana można edytować ~/Plik .java.policy zawiera:

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

Ale tego również nie można odebrać. Może faktycznie działa i nie otrzymuje odczytu z tego samego powodu, dla którego plik java.security nie działa, a może po prostu nie działa.

Niektóre właściwości systemu widziałem:

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" 

Więc teraz, myślę, że utknąłem z konieczności każdemu użytkownikowi mieć własne Eclipse nienaruszony. Wiem, że to brzmi jak skomplikowana konfiguracja, ale to nie powinno mieć nic wspólnego z Eclipse, jeśli chodzi o konfigurację certyfikatu ... to naprawdę konfiguracja Java dla certyfikatów specyficznych dla użytkownika.

Wszelkie pomysły?

Odpowiedz

5

Użyj user-specific configuration.

Ustawianie prywatny lokalizacja konfiguracja

Domyślna lokalizacja prywatnej konfiguracji to:

użytkownik-home-dir/.eclipse/< product-id > _ < produkt wersja >/konfiguracja

Domowy katalog użytkownika jest określony przez user.home właściwość systemu Java. Identyfikator i wersję produktu uzyskuje się z pliku znacznika produktu .eclipseproduct w ramach instalacji Eclipse.

0

można przechowywać wszystkie te informacje do pliku i odczytać z niego i ustawić każdą zmienną w kodzie za pomocą:

System.setProperty(...); 

Daj mi znać, kiedy to rozwiązuje problem.

+0

Nie ma kodu, jego wtyczki po prostu zaćmienie, więc mogę uzyskać dostęp do trac przez zaćmienie. –

Powiązane problemy