Ir para conteúdo
  • Cadastre-se

dev botao

Erro Ao Ler Certificado A1 Openssl


  • Este tópico foi criado há 3542 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Ola.

Estou utilizando um certificado A1 com o método OpenSSL. 

Faço assim:
 
  ACBrNFe1.Configuracoes.Certificados.Senha:=SENHA_DO_CERTIFICADO
  ACBrNFe1.Configuracoes.Certificados.Certificado:=c:\certificado\certificado.pfx ;
 
Pois bem.. 
Envio a primeira nota, faz tudo direitinho, porém, qdo tento enviar uma outra nota, da o seguinte erro:
Failed to load private pem Key From c:\certificado\certificado.pfx
 
Deu a impressão que fica algo aberto após a efetivação da primeira nota.
Existe algo que tenho que fechar ou encerrar ?
a única coisa que faço no final do processo é:
 
ACBrNFe1.NotasFiscais.Clear ;
 
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Ola amigos..

Só para complementar agora...

O problema só ocorre quanto mandado imprimir a Danfe, caso não mande impressão, o problema não ocorre..

Faço assim:

 

ACBrNFe1.Enviar(VnrCupom,False,True) ;

 

if ACBrNFe1.NotasFiscais[0].Confirmada=True Then

   ACBrNFe1.NotasFiscais.Imprimir ;

 

Dessa forma imprime a danfe, mas na próxima nota, ocorre o problema....

 

Se eu tirar o comando de impressão, o problema não ocorre mais..

 

Eu uso FortesResport para impressão, acredito que o problema esteja ai..

No aguardo..

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Ola pessoal..

O problema está na função que gera o QrCode...

Deixei sem impressão, e usei a função as seguir para gerar o QrCode:

NotaUtil.GetURLQRCode ;

 

Usando essa função, no próximo envio, ocorre o problema..

Não sei se estou fazendo algo errado, mas cheguei a essa situação..

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Você está enviando NFC-e ou NF-e?

 

Você deve ler o certificado somente uma vez, se ler ele sempre que enviar uma nota vai gerar problemas, pois o openssl fica em memória.

O ideal é efetuar a leitura sempre ao abrir o aplicativo.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia..

Estou fazendo NFce...

 

Quando vc diz "ler o certificado" vc quer dizer:

ACBrNFe1.Configuracoes.Certificados.Senha:=SENHA_DO_CERTIFICADO
ACBrNFe1.Configuracoes.Certificados.Certificado:=c:\certificado\certificado.pfx ;
 
Se for isso, a resposta é sim.. faço isso apenas uma vez no inicio da aplicação.
O estranho é que se eu não executo a função NotaUtil.GetURLQRCode ; o problema não ocorre !
Editado por Dércio Luis Zanatta
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Quanto a instalação do OpenSSL, não fiz nada mais do que marcar as opções: 

"Utilizar o OpenSSL ao invés da capicom na Nfe e similares"

 

Quanto as dlls, tenho as seguintes dlls apenas na pasta c:\windows\syswow64

libeay32.dll  versão 0.9.8.14

ssleay32.dll versão 0.9.8.14

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Estive verificando aqui e vi que a extração da chave privada do certificado é feita pela dll libxmlsec.dll

Vi que existe uma dll chamada libxmlsec-openssl.dll junto com os fontes..

Tentei usar essa dll, renomeando-a para libxmlsec.dll, mas ai ocorre problema ao abrir o aplicativo dizendo que falta uma função na dll chamada xmlSecShutdown.

Não sei pq existem essas duas dll.. 

Preciso renomear conforme o que quero usar ? ou deveria funcionar assim mesmo ?

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Sim, já tentei fazer isso..

O problema deve estar na função NotaUtil.GetURLQRCode , pois se não executo essa função o erro não ocorre !

Sinceramente não sei mais o que fazer !

Esse problema não ocorre ai com vc ?

Pode fazer o teste até mesmo com o exemplo que vem junto com o acbr.. Só tem que altear para usar Fortes Report... já vai dar o problema !

Editado por Dércio Luis Zanatta
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Regys.. aqui pra mim não tem jeito..

Consegui contornar o problema fazendo uma Gambiarra aqui..

Fiz assim:

Coloquei o componente Acbrnfe1  em um outro formulário..  Ao enviar cada nota, antes de gerar o xml, eu carrego esse formulário e alimento as propriedades do componente, quando finaliza a operação, eu dou um Free no formulário onde está o componente..  Dessa forma não ocorre o problema..

Foi a única forma que encontrei de resolver...

 

Agora o problema é outro (já existia antes também) ..

Tenho uma Daruma DR700H com o driver Spooler instalado...

Se mando imprimir a partir do prevew do Fortes, ele da um erro:  "erro ao imprimir em DR700H".. .ai eu desconecto a impressora da USB e conecto novamente, sai imprimindo blz..

Isso somente ocorre pelo Fortes, tanto com prevew como sem..

Se gero um pdf e depois mando imprimir do pdf, blz, não ocorre o erro..

Li em outros posts que vc tb usa uma Daruma desse mesmo modelo... isso ocorre com vc tb ?

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Esse problema parece ser no driver, o componente não tem acesso ao spooler, ele somente envia uma impressão normal para o modelo da impressora, quem controla tudo depois é o windows.

 

Seria interessante passar ao pessoal da Daruma isso, talvez uma configuração possa ser feita.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.