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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage