2010-12-13 7 views
7

Mac OS X ma magazyn kluczy CA w /System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts. Ten magazyn kluczy wydaje się być nadpisany przez każdą aktualizację Javy, co jest bardzo denerwujące, ponieważ mamy wewnętrzne CA w środowiskach programistycznych, testujemy ...Jak zachować magazyn kluczy CAcerts na komputerze Mac w ramach aktualizacji?

Czy istnieje sposób na zachowanie zmian w plikach kluczy w JSRs Apple, a teraz, z Snow Leo JSR3, także w przypadku aktualizacji osobnych pakietów programistycznych Java (których JDK używają tego samego magazynu kluczy)?

Odpowiedz

6

/System/Library/Frameworks/JavaVM.framework/Home/ jest dowiązaniem symbolicznym do Versions/CurrentJDK/Home w obrębie JavaVM.framework. Oczywiście to się zmieni wraz z nową wersją. Użyj pełnej ścieżki (na przykład /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home), która nie zmieni się w aktualizacjach.

3

Następujące parametry mogą być wykorzystane, aby określić lokalizację cacerts złożyć do Java:

-Djavax.net.ssl.trustStore=<cacerts.location> 
-Djavax.net.ssl.trustStorePassword=changeit 

wykonać kopię z cacerts w katalogu domowym Java (z wewnętrznym CAS) i umieścić go gdzieś w katalog domowy. Następnie wpisz pełną ścieżkę do lokalizacji pliku cacerts jako wartość właściwości javax.net.ssl.trustStore powyżej. Ta kopia nie zostanie nadpisana przez aktualizacje Java. Domyślne hasło to "zmień".

dwie wady tego podejścia są:

  • Plik nie będzie żadnych aktualizacji do pliku cacerts w SDK. Jest to głównie problem w przypadku naruszenia bezpieczeństwa urzędu certyfikacji.
  • Wszędzie tam, gdzie potrzebujesz niestandardowych cacertów (narzędzia do budowania, serwer aplikacji itp.), Parametry te muszą zostać określone.
+0

Interesujące ... ale innym problemem jest to, że hasło magazynu kluczy zostanie wyświetlone każdemu użytkownikowi, który może wyświetlić listę procesów na tym komputerze. –

+1

Masz na myśli hasło sklepu zaufania, prawda? To jest problem, ale można go złagodzić, robiąc coś podobnego do tego, co proponuję tutaj w odniesieniu do przepustki magazynu kluczy: http://stackoverflow.com/a/10645013/290918 – kldavis4

2

Wygląda na to, że sytuacja się zmieniła w systemie Mac OS X 10.6.8 Snow Leopard. Teraz /System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts jest dowiązaniem symbolicznym do /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts, które nie ulegnie zmianie po aktualizacji, jeśli będziemy mieli szczęście.

Powiązane problemy