NFe - Certificado A1 do serasa em ambiente diferente de Windows XP ou Vista

Fala ai pessoal, juntando códigos daqui e dali pegos aqui mesmo no GUJ.
Utilizei um certificado A1 comprado no Serasa (arquivo PFX) e assinei e chamei um webservice de status do serviço do SEFAZ.

Então criei um jar que faz esse teste utilizando o certificado e executei em maquinas windows XP e vista, todos funcionaram numa boa.
Porém quando executo no linux ou no windows 2008 (server) retorna erro 403.17 (O certificado do cliente não se encontra no período de validade.)

Alguém já teve esse problema? sabe por que que não funciona nesses ambiantes?

No site do serasa diz que só funciona em ambiente windows XP, mas como quem lê o PFX é o próprio java, e não tem nenhum certificado instalado no SO, imagino que todos deveriam funcionar da mesma forma.

Agradeço qualquer informação de antemão.

Obrigado.

BOm dia, gente!

Também estou com o mesmo problema!

Alguém tem idéia do que possa ser isso ?

Obs: Então Bé, se você realmente tem certeza de que o certificado não é instalado no S.O e que o S.O. não interfere no processo, convenhamos que o problema está no Java ou no Browser certo?

Ajudem!

Achei que podia ser algo com o formato do arquivo, então utilizei a tecnica descrita nesse site:
http://www.jguru.com/faq/view.jsp?EID=532461

mais precisamente:

  1. (If you already have a pkcs12 pem file, skip #1)
    openssl pkcs12 -in mypfxfile.pfx -out mypemfile.pem

openssl pkcs12 -export -in mypemfile.pem -out mykeystore.p12 -name “My Certificate”

  1. (To verify that the keystore exists)
    keytool -v -list -keystore mykeystore.p12 -storetype pkcs12

depois de ter o arquivo .12 testei no windows vista
funcionou numa boa

ai empolgado fui testar no 2008 e no linux e nada!
:frowning:

Então, mas… voce tem certeza de que o S.O. nao interfere nesse processo ?

Eu também estou muito curioso com esse caso. Trabalho ha 2 anos com suporte a configuracao e instalacao de certificado digital e nunca testei no SVR 2008 e Linux.

Bom, de repente voce poderia verificar pq com o certificado HSM em server funciona e com o seu A1(browser) nao.

www.arcomprova.com.br

Olha, acredito que o certificado A1 seja apenas um arquivo contendo dados que podem ser validados pelo servidor, fazendo com que este tenha certeza da origem da requisição.
O que talvez aconteça é que o servidor tenha capacidade de detectar qual o SO que gerou a requisição e só aceita esse tipo de certificado quando for um Windows que não é Server, quando ele detecta server ele da aquela mensagem que não tem nada a ver.

O motivo pra isso?
Talvez o fato de obrigar quem usa o server comprar um HSM e gastar mais com isso.

Talvez eu esteja falando groselha.
Mas na minha opinião não tem nenhum impedimento técnico para esse certificado não funcionar no win2008 ou linux, já que a maquina virtual é a mesma, java não é write once run anywhere?
não acredito que o problema seja com o java
apenas se for um bug (o que acho improvável)

Então Bé…

Falei com uma pessoa entendida no assunto lá no Serasa. Ele me informou que para que o seu certificado A1 funcione no SVR 2008 ou 2003, será necessário gerar o par de chaves no Windows XP ou Vista e exportar o certificado + cadeias do certificado. Com o arquivo exportado você conseguirá importá-lo para o Browser no SVR 2008. Mamão com açúcar! :lol:

Para exportar segue o link:
http://loja.certificadodigital.com.br/Serasa/UPLOAD/Downloads/368.pdf

Como importar o certificado no browser:
http://loja.certificadodigital.com.br/Serasa/UPLOAD/Downloads/369.pdf

Ele me explicou que o HSM só pode ser instalado em servidores por conta da plataforma de Hardware. O HSM é fabricado para arquiterura de servidores. A IBM vende esse tipo de serviço. O certificado A1 funciona em qualquer sistema operacional que trabalhe com Browsers, o que você precisa é apenas gerar o arquivo nos sistemas operacionais indicados e depois importá-los para onde vocÊ quiser!

Aquele abraço! :smiley:

@Deyver
você fez esse teste?

o que acho estranho é que da maneira como configuramos o certificado para o java utilizar, independe do browser, segue um trecho de código:

		 System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");  
		 System.setProperty("javax.net.ssl.keyStore",caminhoCertificado);//Aqui vem o arquivo do certificado do seu cliente  
		 System.setProperty("javax.net.ssl.keyStorePassword", senha);//Aqui a senha deste certificado  
		 
		 System.setProperty("javax.net.ssl.trustStoreType", "JKS");  
		 System.setProperty("javax.net.ssl.trustStore", caminhoCertificadoSefaz);//Aqui vem o arquivo 

Se eu tenho que especificar qual o arquivo do tipo PFX para o java, qual a necessidade de instalar no browser?
e ainda sim
ele reconhece o PFX exportado pelo IE (esse PFX que tenho foi exportado numa maquina windows XP) porém o servidor recusa a requisição pois fala q a data expirou.

Outro detalhe, a minha maquina (onde fiz o teste e funcionou) é um windows vista que o certificado NÃO está instalado no browser, ou seja, eu acesso o PFX diretamente pelo java e o servidor aceita a requisição numa boa e responde com o status da maneira correta.

Você instalou as cadeias de certificado (Raiz Completa) no SVR 2008 ? “Geralmente” essa mensagem de data aparece quando o S.O. não tem as cadeias de certificados instalados no micro. :slight_smile:

Estou providenciando um servidor de testes!
Quando eu instalar eu dou meu parecer!

Obrigado pela ajuda, de antemão!

Então Bé. Fiz um atendimento hoje para a exportação(backup) de um certificado A1 e importação no IE de um Mac da Apple.

Deu certo!

Use os links que eu mandei pra você nos posts aí em cima. Vai dar certo, é só gerar o par de chaves no Windows XP e exportá-lo para o seu pen drive. Em seguida, abra o navegador e importe! Funciona que é uma beleza!

PS: Ainda não testei no SVR 2008.

PS2: NÃO GERE O PAR DE CHAVES NO WINDOWS VISTA POIS NESSE SISTEMA OPERACIONAL NÃO TEM COMO VOCÊ FAZER O BACKUP DO CERTIFICADO.

Abraço! 8)

Ainda não tive como testar Deyver
mas uma dúvida

você importa no SO que vai usar, mas utiliza como?
o código java que você usa pra carregar o certificado é igual a esse ai q mandei ai em cima?

Então Bé, não sou desenvolvedor e não me entendo muito com código :slight_smile: hehehehe…

Na verdade estou no fórum como um curioso mesmo(apesar de fazer ciência da computação).

Eu exportei um certificado e-CPF do tipo A1 para assinatura digital. Depois de importar no IE8 do cliente, realizamos um teste de assinatura com sucesso usando o site www.certificadodigital.com.br/suporte.

O NF-e A1 funciona da mesma maneira. Não sei como você vai integrar o certificado digital com o seu programa de emissão de nota fiscal, mas sei que ao menos você poderá realizar um teste de assinatura digital para verificar se o mesmo já está funcionando. Isso já ajuda bastante acredito 8)…

Abraço!

então
esse é o problema que estou citando desde o inicio!

num software em java, ele carrega o pfx diretamente, ele não olha as cadeias do sistema operacional, pelo menos é o que parece.
Na minha maquina eu NÃO tenho o certificado instalado (ela é windows vista) e meu código funciona, pois carrego o pfx diretamente.

Já no 2008 não funciona.

Eu vou fazer o teste de instalar, mas acredito que vai continuar sem funcionar

Então Bé, acho que você deveria solicitar ajuda para alguma empresa de certificação digital pois aqui no fórum acredito que ninguém podrá te ajudar. Essa pergunta é muito específica 8)…

Tente falar com alguém na Serasa, Certisign, Gemalto ou Imprensa Oficial. Acho que é a melhor opção no seu caso.

Utilizei esta dica no Delphi 7 mas utilizando o Acbr e o Certificado A3. creio eu que seja aplicavel ao java.

" No windows na opção “Prevenção de Execução de Dados” adicionado o executavel da aplicação como confiavel.

Passos:

1º Meu Computador > Propriedades > Avançado > Desempenho > Botão Configurações > Aba Prevenção de Execução de Dados > Adicione o .exe da aplicação.

2º Também instalei novamente o capicom baixando do link https://wwws.prodemge.gov.br/images/stories/exe/capicom.exe

a 2º opção não sei dizer se influencia pois tinha feito ela antes de fazer a 1º.

Fonte:
http://acbr.sourceforge.net/mantis/view.php?id=164

Rodolfo Goulart
http://heavenwarriors.blogspot.com/

[color=darkblue]Não sei se ajuda, mas segue: [/color]

Nfe - Nota Fiscal Eletronica

Alguém aí por acaso ja começou do zero com o certificado A1?
No projeto aqui da empresa onde trabalho criamos todas as classes
para a criação do XML, e este por fim já está montado.
Porém, a segunda parte (Signature) que contem a assinatura digital,
precisa ser preenchida usando o certificado.
Começamos pesquisando e tentando implementar o A3, mas agora estamos
querendo mudar para o A1, em que o arquivo fica na própria máquina,
e não num cartão com chip.
Obrigado!