Greifen Sie von Java aus auf den Zertifikat-Truststore von Firefox zu
Ich verliere fast die Hoffnung auf diesen einen. Ich versuche, mithilfe der NSS-Bibliotheken, die mit der Firefox-Installation geliefert werden, über PKCS # 11 von Java 7 aus auf den Firefox-Truststore zuzugreifen.
Hier ist der Code:
<code>import java.security.KeyStore; import java.security.Security; import java.util.Enumeration; import sun.security.pkcs11.SunPKCS11; public class Test { public static void main(String[] args) throws Exception { String configName = "pkcs11.cfg"; SunPKCS11 p = new SunPKCS11(configName); Security.addProvider(p); KeyStore ks = KeyStore.getInstance("PKCS11", p); ks.load(null, "apassword".toCharArray()); System.out.println("Size: " + ks.size()); Enumeration<String> aliases = ks.aliases(); while (aliases.hasMoreElements()) { System.out.println(aliases.nextElement()); } } } </code>
Hier sind die Inhalte für die PKCS # 11-Konfiguration:
<code>name = NSS nssLibraryDirectory = /usr/lib/firefox/ nssSecmodDirectory = "/home/bogdan/.mozilla/firefox/x5d8wol9.default/" nssModule =trustanchors showInfo = true </code>
Wenn ich die Anwendung starte, lege ich auch die Eigenschaft fest-Djava.library.path=/usr/lib/firefox/
Wenn ich die Anwendung ausführe, erhalte ich Folgendes:
<code>NSS modules: [NSS Internal PKCS #11 Module (CRYPTO, /usr/lib/firefox/libsoftokn3.so, slot 0), NSS Internal PKCS #11 Module (KEYSTORE, /usr/lib/firefox/libsoftokn3.so, slot 1)] Exception in thread "main" java.security.ProviderException: NSS module not available: trustanchors at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:271) at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:103) at Test.main(Test.java:11) </code>
Sie können tatsächlich sehen, dass das Modul "trustanchors" beim Initialisierungsschritt nicht geladen wird, aber ich habe keine Ahnung, warum. Die Dokumentation hier:http://docs.oracle.com/javase/6/docs/technotes/guides/security/p11guide.html#NSS sagt, dass
Das Trustanchors-Modul ermöglicht den Zugriff auf NSS-Trust-Anker-Zertifikate über den PKCS11-KeyStore, wenn secmod.db so konfiguriert wurde, dass die Trust-Anker-Bibliothek enthalten ist.
aber ich habe keine ahnung was das bedeutet. Es ist erwähnenswert, dass ich mit Windows XP 32-Bit und Ubuntu 11.10 64-Bit dasselbe Verhalten bekomme. Es scheint, dass die Datei pkcs11.cfg korrekt ist, als ob ich einen der Pfade ändere, bei denen die Anwendung mit anderen Fehlern fehlschlägt.
Irgendwelche guten Ideen?