Ir para conteúdo
  • Cadastre-se

dev botao

ACBrCTe -> Erro ao ler informações do Certificado. Provavelmente a senha está errada


Ver Solução Respondido por forbostec,
  • Este tópico foi criado há 371 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado (editado)

Olá, bom dia, tudo bem? Estou com um problema semelhante, porém, no CTe.

Estou utilizando a seguinte configuração para carregar os certificados: 

ACBrDFe.SSL.SSLType := LT_TLSv1_2;
ACBrDFe.SSL.SSLCryptLib := cryOpenSSL;
ACBrDFe.SSL.SSLHttpLib := httpOpenSSL;
ACBrDFe.SSL.SSLXmlSignLib := xsLibXml2;

ACBrDFe.Configuracoes.Geral.Salvar := True;

ACBrDFe.Configuracoes.Certificados.Senha := FSenhaCertificado;
ACBrDFe.Configuracoes.Certificados.ArquivoPFX := CaminhoCertificado;
ACBrDFe.Configuracoes.Geral.SSLLib := libOpenSSL;
ACBrDFe.Configuracoes.Certificados.NumeroSerie := FSerieCertificado;

ACBrDFe.SSL.NumeroSerie := FSerieCertificado;
ACBrDFe.SSL.Senha := FSenhaCertificado;
ACBrDFe.SSL.ArquivoPFX := CaminhoCertificado;

E estou tentando transmitir um evento de cancelamento de um CTe, porém, estou recebendo a seguinte mensagem: 

---------------------------
Erro
---------------------------
Falha ao assinar o Envio de Evento 
Erro ao ler informações do Certificado.
Provavelmente a senha está errada

O erro persiste em qualquer coisa que eu tente fazer com o CTe (Consultar, Autorizar, ...) . 
Esse erro começou após eu atualizar e reinstalar os pacotes do ACBr ontem. Pelo que tenho testado, isso acontece apenas nos clientes que possuem caracteres especiais na senha do certificado (@, #, $). Já em senhas apenas alfanuméricas, continuam funcionando bem. Até verifiquei se a senha do cliente não estava incorreta, instalando o certificado manualmente, mas funcionou. 
Também tentei substituir as bibliotecas utilizadas pelas que estão no ACBr (pasta ...\ACBr\DLLs\OpenSSL) e o erro persiste. 
Um exemplo de:

  • senha com problemas: Cooper@2025
  • senha sem problemas: aula1590

Já debuguei as funções ACBDFeSSL SetSenha e GetSenha, ali aparentemente elas estão corretas. 
Alguma ideia talvez do que fazer? 

Editado por forbostec
  • Membros Pro
Postado (editado)
38 minutos atrás, Alexandre de Paula disse:

Consegue dizer qual versão da OpenSSL está utilizando?

Tente usar a 1.1 para ver se não dá o erro.

Estou utilizando a 1.1, até tentei verificar se não tinha alguma coisa perdida nos diretórios do windows, mas não, a princípio é apenas a 1.1

Arquivos libcrypto-1_1.dll e libssl-1_1.dll, correto? E o erro persiste: 

Erro ao ler informações do Certificado.
Provavelmente a senha está errada

O curioso é que funcionava até ontem antes de atualizar, e apenas acontece nos clientes que possuem caracteres especiais na senha do certificado. Nos outros, funciona normalmente 

Editado por forbostec
  • Consultores
Postado

Bom dia @forbostec!

Optei por dividir o tópico em um novo, pois apesar de ser problema semelhante os contextos são diferentes(o tópico original estava relatando problema na Lib NFe e você está com problema ao enviar evento usando componente nativo do CTe).

Você informou antes que está usando a versão 1.1 da dll. Seus fontes estão atualizados e não há modificação local neles?

Caso afirmativo, por favor, adicione as seguintes linhas na rotina que mostra as informações de resposta no programa exemplo:

   mResp.Lines.Add('Versão OpenSSL');
   mResp.Lines.Add( OpenSSLExt.OpenSSLVersion(0) );
   mResp.Lines.Add( ACBrOpenSSLUtils.OpenSSLFullVersion );
   mResp.Lines.Add( OpenSSLExt.SSLUtilFile );  
   mResp.Lines.Add( OpenSSLExt.SSLLibFile );
   mResp.Lines.Add('------------------------------');

Depois disso, por favor, repita o teste.

Conforme explicado em: ACBr agora é compatível com OpenSSL 3.x, ao adicionar estas linhas ele vai demonstra qual é a versão da OpenSSL que está usando e de onde está pegando a dll.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membros Pro
Postado

Olá Diego, tudo bem? Desculpa a demora em respondê-lo. 

Não consegui localizar as units para carregar o ACBrOpenSSLUtils.pas, tu terias talvez o caminho delas no projeto?

Muito obrigado 

  • Consultores
Postado
43 minutos atrás, forbostec disse:

Olá Diego, tudo bem? Desculpa a demora em respondê-lo. 

Não consegui localizar as units para carregar o ACBrOpenSSLUtils.pas, tu terias talvez o caminho delas no projeto?

Muito obrigado 

Boa tarde!

As units necessárias ficam em ...\ACBr\trunk2\Fontes\ACBrOpenSSL.

Adicione ACBrOPenSSLUtils e OpenSSLExt na sua seção uses.

 

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membros Pro
Postado (editado)

Diego, muito obrigado pela ajuda.

O log que você me ajudou a montar está apontando para a pasta de outro aplicativo.

Está apontando para a OpenSSL 3, diferente do que deveria acontecer Tem como/exemplo forçar o OpenSSL pegue seja o endereço local da minha aplicação?  

Hoje estou fazendo isso para utilizar o o OpenSSL

AACBrDFe.SSL.SSLType := LT_TLSv1_2;
AACBrDFe.SSL.SSLCryptLib := cryOpenSSL;
AACBrDFe.SSL.SSLHttpLib := httpOpenSSL;
AACBrDFe.SSL.SSLXmlSignLib := xsLibXml2;

 

Muito obrigado 

Editado por forbostec
  • Curtir 1
  • Consultores
Postado
21 minutos atrás, forbostec disse:

Diego, muito obrigado pela ajuda.

O log que você me ajudou a montar está apontando para a pasta de outro aplicativo.

Está apontando para a OpenSSL 3, diferente do que deveria acontecer Tem como/exemplo forçar o OpenSSL pegue seja o endereço local da minha aplicação?  

Hoje estou fazendo isso para utilizar o o OpenSSL

AACBrDFe.SSL.SSLType := LT_TLSv1_2;
AACBrDFe.SSL.SSLCryptLib := cryOpenSSL;
AACBrDFe.SSL.SSLHttpLib := httpOpenSSL;
AACBrDFe.SSL.SSLXmlSignLib := xsLibXml2;

 

Muito obrigado 

Boa tarde!

Escolha de acordo com a arquitetura que você compila a sua aplicação as Dlls do OpenSSL e coloque elas na mesma pasta do seu .EXE.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Membros Pro
  • Solution
Postado

Então, isso é o estranho. Eu tenho as bibliotecas libcrypto-1_1.dll e libssl-1_1.dll na mesma pasta do meu exe, porém, aquele log 

mResp.Lines.Add( OpenSSLExt.SSLUtilFile ); 

acaba me levando para uma pasta totalmente diferente, que é de outra aplicação (pasta de instalação do FastReport). Para resolver, acabei removendo as bibliotecas do path do fast, e, enfim, voltou a funcionar!! Só não entendi direito o porque, se há alguma configuração global ou algo foi adicionado automaticamente no delphi. 

 

Muito obrigado, 

  • Curtir 1
  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 371 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.