Ir para conteúdo
  • Cadastre-se

dev botao

Cte Com Openssl - Error:failed To Load Private Key Pem From


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

Recommended Posts

Postado

Perdão se estiver postando no lugar errado. Pesquisei um bocado antes, não consegui um assunto específico. A dificuldade é:

 

Preciso desenvolver a aplicação de CTE  para LINUX UBUNTU  e usará o WINE, o certificado digital é A1, devo usar OPENSSL. Nos meus testes estou recebendo o erro "Error:failed to load private pem  key from : "c:\certificado.pfx" quando faço a assinatura.

 

Obs.: A mesma aplicação rodando com capicom e o mesmo certificado está funcionando perfeitamente, o certificado é válido e foi emitido em maio deste ano. Atualizo com frequência os fontes, semanalmente ou menos.Estou usando a seguinte sintaxe:

 

{$IFDEF ACBrCTeOpenSSL}

frmprinc.ctre.configurações.certificados.certificado := 'c:\certificado.pfx';

frmprinc.ctre.configurações.certificados.senha := 'senha';

{$ELSE}

frmprinc.ctre.configurações.certificados.NumeroSerie := 'BLABLABLANumerode serie';

{$ENDIF}

 

 

Ademais segue a codificação como no uso com CAPICOM...

 

Tem alguma configuração a ser informada, algum macete, formato do certificado, qualquer coisa a mais que talvez eu tenha esquecido ? Pode ter relação com a versão das DLLs ?

 

  • Solution
Postado

Encontrei uma solução, talvez uma gambiarra, mas funcionou, como o colega acima colocou, o certificado está certo, caminho do PFX existe e com CAPICOM o mesmo certificado funciona. A forma de resolver foi a adição de uma linha no arquivo ACBRCTeConhecimentos  " CTeUtil.initXMLSec; " na procedure TConhecimentos.Assinar...

 

Se existe outro local em que esse efeito seja o mesmo sem a necessidade de alterar o código fonte, seria preferível, creio eu.

 

Conclusão: Creio que essa instrução faça algum tipo de inicialização em variáveis que podem estar com um valor default indesejado...

  • Consultores
Postado

Boa tarde Egon,

 

O InitXMLSec é executado automaticamente quando se cria o componente e desde que esteja usando o OpenSSL e a propriedade IniFimXMLSECAutomatico tenha o valor True.

 

Na Unit ACBrCTe temos:

 

constructor TACBrCTe.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  (...)
{$IFDEF ACBrCTeOpenSSL}
  if FConfiguracoes.Geral.IniFinXMLSECAutomatico then
   CteUtil.InitXmlSec;
{$ENDIF}
  FOnGerarLog := nil;
end;
  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.