para - plugin java chrome
Acceda a la tienda de confianza de certificados de Firefox desde Java (1)
Al final, logré resolver el problema utilizando la biblioteca JSS4 Mozilla. Si desea utilizarlo, asegúrese de descargar JSS4 JAR, así como la implementación de la biblioteca nativa Y las demás dependencias que tiene: las bibliotecas nativas NSPR y NSS.
Asegúrese de que en Linux la ubicación de las bibliotecas nativas esté en LD_LIBRARY_PATH y en Windows su ubicación esté en la variable% PATH%. Es posible que tengas la tentación de usar los DLL / SO que vienen con la distribución de Firefox. Esto no funciona en Windows que encontré (algo que tiene que ver con el hecho de que fueron compilados para una plataforma WIN95, creo)
El resto de la información se encuentra en la documentación de la biblioteca JSS4, pero básicamente necesita usar la clase org.mozilla.jss.CryptoManager
.
Casi estoy perdiendo la esperanza en este caso. Intento acceder a la tienda de confianza de Firefox desde Java 7 utilizando las bibliotecas de NSS que vienen con la instalación de Firefox, a través de PKCS # 11.
Aquí está el código:
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());
}
}
}
Aquí están los contenidos para la configuración de PKCS # 11:
name = NSS
nssLibraryDirectory = /usr/lib/firefox/
nssSecmodDirectory = "/home/bogdan/.mozilla/firefox/x5d8wol9.default/"
nssModule =trustanchors
showInfo = true
Cuando ejecuto la aplicación, también configuro la propiedad -Djava.library.path=/usr/lib/firefox/
Cuando ejecuto la aplicación obtengo lo siguiente:
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)
De hecho, puede ver que el módulo "trustanchors" no está cargado en el paso de inicialización, pero no tengo idea de por qué. La documentación aquí: http://docs.oracle.com/javase/6/docs/technotes/guides/security/p11guide.html#NSS dice que
El módulo trustanchors permite el acceso a certificados de anclaje de confianza NSS a través de KeyStore PKCS11, si secmod.db se ha configurado para incluir la biblioteca de anclaje de confianza.
pero no tengo idea de lo que eso significa. Vale la pena señalar que tengo el mismo comportamiento con Windows XP 32 bit y Ubuntu 11.10 de 64 bits. Parece que pkcs11.cfg es correcto, ya que si cambio alguna de las rutas la aplicación fallará con otros errores.
¿Alguna idea brillante?