Tenho no meu sistemas duas empresas.
Elas precisam emitir notas simultaneamente.
Tenho dois tokens com certificados A3 (CertiSign).
Tenho dois arquivos .cfg diferentes para cada token.
Tenho o código para registrar as propriedades dos certificados (do cliente e do SEFAZ).
[code]public static void setPropriedadesCertificado() throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException {
acceptSSL();
Provider p = new sun.security.pkcs11.SunPKCS11(Global.ARQUIVO_CONFIG_CERTIFICADO);
Security.addProvider(p);
KeyStore ks = KeyStore.getInstance(NFe.TIPO_KEYSTORE_A3); // PKCS11
ks.load(null, Global.SENHA_CERTIFICADO_EMITENTE.toCharArray());
// para resolver: HelloRequest followed by an unexpected handshake message
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");
//System.setProperty("javax.net.debug", "ssl");
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
System.setProperty("javax.net.ssl.keyStore", "NONE");
System.setProperty("javax.net.ssl.keyStoreType", NFe.TIPO_KEYSTORE_A3);
System.setProperty("javax.net.ssl.keyStorePassword", Global.SENHA_CERTIFICADO_EMITENTE);
System.setProperty("javax.net.ssl.keyStoreProvider", "SunPKCS11-eToken");
// as 3 linhas abaixo sao referentes ao certificado do SEFAZ, nao o do cliente
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", Global.ARQUIVO_KEYSTORE_SEFAZ);
System.setProperty("javax.net.ssl.trustStorePassword", Global.SENHA_KEYSTORE_SEFAZ);
}[/code]Teria que chamar esse método toda vez que for fazer uma operação no servidor? [b]Ex: verificar o status.[/b]
Será que pode deixar os dois tokens conectados simultaneamente?