Ir para conteúdo
  • Cadastre-se

dev botao

Erro: 12186 - Falha ao obter a Chave Privada do Certificado para comunicação segura - Certificado A3


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

Recommended Posts

Bom dia, estou tendo esse erro ao tentar enviar CTe ou MDFe para a Sefaz, somente usando certificado A3:

Verifique suas configurações de internet

WebService Consulta Status serviço:

- Inativo ou Inoperante tente novamente.

Erro Interno: 12186

Erro HTTP: 0

URL: https://nfe.fazenda.sp.gov.br/cteWEB/services/cteStatusServico.asmx

Falha no Envio da Requisição.

Erro: 12186 - Falha ao obter a Chave Privada do Certificado para comunicação segura

Fizemos vários testes, seguimos as recomendações deste link, sem sucesso:

Ai depois de pesquisarmos alguns sites no google, encontramos um que estava comentando sobre um possível problema com o componente de segurança WARSAW, ou DIEBOLD... ai começamos a investigar por essa linha, e descobrimos que os nossos clientes que estão tendo este problema coincidentemente usam o navegador Bradesco Exclusivo, que instala um componente de segurança parecido com esse WARSAW.

Fizemos um teste removendo o navegador e o componente de segurança, e passou a funcionar.

Alguém por acaso sabe se existe uma forma em que poderíamos manter o componente de segurança (pois o cliente precisa usar o Bradesco), e ainda sim obter sucesso com a utilização do A3?

 

Obrigado.

Editado por Active.Matheus
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia

sim. seu software é assinado digitalmente por um certificado?

caso negativo é isso que deve de fazer, adquirir um certificado de assinatura de software e assinar seu executavel antes de enviar para o cliente.

deve de resolver seu problema

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Em 15/06/2020 at 12:28, Juliomar Marchetti disse:

Bom dia

sim. seu software é assinado digitalmente por um certificado?

caso negativo é isso que deve de fazer, adquirir um certificado de assinatura de software e assinar seu executavel antes de enviar para o cliente.

deve de resolver seu problema

Boa tarde Juliomar,

Fiz o teste, usando um certificado de SPC criado aqui por nós usando as ferramentas de SDK do Windows, apenas para testar antes de comprar um certificado, porem o resultado ainda continua o mesmo.

Executei o Demo do ACBr para CTe, e funciona, nos deixando ainda mais intrigados. Conferimos os parâmetros do objeto ACBRCte em ambos os projetos e estão idênticos. E o Demo nem é assinado.

Estamos deixando o campo de senha em branco, pra forçar que o software do certificado peça o PIN, porem nem ocorre isso, ele fica um tempo aguardando e depois retorna o erro 12186.

Quando escolhemos um certificado A1 que esteja instalado na maquina (pra ter o mesmo comportamento do A3, usando pelo numero de série, ao invés do PFX), funciona normalmente.

Alguma outra sugestão?

Editado por Active.Matheus
Link para o comentário
Compartilhar em outros sites

  • Moderadores

É esse dai não vai adiantar de nada mesmo. tem explicações na internet tu pode fazer etc. mas sem validade ele tem que ter uma empresa certificadora.

Sobre funcionar o exemplo então é começar por ai, ver o que tem de diferente em sua aplicação ou mais que não deveria de estar lá

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

4 minutos atrás, Juliomar Marchetti disse:

É esse dai não vai adiantar de nada mesmo. tem explicações na internet tu pode fazer etc. mas sem validade ele tem que ter uma empresa certificadora.

Sobre funcionar o exemplo então é começar por ai, ver o que tem de diferente em sua aplicação ou mais que não deveria de estar lá

Então, como disse, os parâmetros estão idênticos nos dois projetos... no Demo do ACBr funciona com Capicom e Wincrypt de boa, mas no software não... e quando removemos o componente de segurança Bradesco, funciona também no software.

Porque que o Bradesco travaria meu software, e não trava o demo do Acbr, se ambos estão tentando fazer a mesma coisa?

Editado por Active.Matheus
Link para o comentário
Compartilhar em outros sites

  • Moderadores

No caso do exemplo ele só faz isso. em seu sistema o que mais tem ? possui algum código para chamar pastas ou funções que aos olhos do aplicativo de segurança pode ser malicioso, lembre-se que esses módulos nada mais são que antivirus

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Em 16/06/2020 at 15:38, Juliomar Marchetti disse:

No caso do exemplo ele só faz isso. em seu sistema o que mais tem ? possui algum código para chamar pastas ou funções que aos olhos do aplicativo de segurança pode ser malicioso, lembre-se que esses módulos nada mais são que antivirus

Bom dia Juliomar, td bem?

O que vc disse faz sentido sim, nosso sistema tem muitas funções, é bem complexo, acredito que possa ter algo que se enquadre nessa situação que vc comentou... o problema é que a causa for essa, não podemos mudar isso.

Nosso maior problema é que temos uma versão deste sistema, que foi compilada em Delphi XE8, ano passado, ela funciona bem com o A3.. depois que migramos para o Delphi RIO 10.3, começaram a surgir esses conflitos. E agora chegamos num ponto onde precisamos atualizar os envios de CTe e MDFe com novas regras do governo, e a versão do ano passado não contempla essas regras, e não podemos simplesmente voltar para o Delphi XE8, pois teriamos outros transtornos.

A nossa esperança era que outros usuários que tb usam o ACBr pudessem ter tido algum problema semelhante, para compatilharmos informações e achar essa solução.

Em um dos ultimos testes q fiz, segui uma dica baseada neste link: 

 

Onde o cara comenta que qdo da o erro, abre outro programa que peça o PIN, e depois disso tudo funciona. FIz o mesmo teste abrindo o Internet Explorer, entrando no site da sefaz para solicitar o certificado e o PIN, e após isso, o sistema envia o CTe. Pelo jeito tem algo (provavelmente o bradesco), que ta impedindo o sistema de se comunicar com o software do A3. 

O software do A3 está atualizado, com a ultima versão baixada do site do Serasa.

 

Link para o comentário
Compartilhar em outros sites

7 minutos atrás, Juliomar Marchetti disse:

Isso usando o exemplo?

Não, usando o nosso sistema, tivemos essas duas situações... conseguimos assinar o XML usando o A3, e conseguimos enviar um Cte, mas no meio do processo, apos o erro, tive que entrar no Internet Explorer, forçar um acesso ao site da Sefaz para solicitar o certificado e o PIN, e apos isso, o envio foi concluído.

Com o exemplo não tivemos nenhum problema, ele sempre comunica.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
Em 19/06/2020 at 16:06, Juliomar Marchetti disse:

Então é o que falei vai precisar revisar seu sistema pra entender o que está sendo feito de diferente do exemplo

Boa tarde Juliomar, tudo bem?

Bom, já revisamos tudo, comparamos os métodos que configuram o componente ACbrCTe, entre o Demo e o nosso sistema, e estão iguais, mas nosso sistema ainda não consegue completar a comunicação com a Sefaz, tanto na Capicom, quanto na Wincrypt. E o nosso mesmo sistema, que foi compilado com Delphi XE8, e um ACbr mais antigo, funciona sem nenhum problema.

Gostaria de saber se você da algum tipo de consultoria para nos ajudar a identificar onde está o problema, ou se você indica alguém que possa fazer esse serviço, analisar o código do nosso sistema, ambiente, o próprio ACBr, etc.

Estamos em Guarulhos.

 

No aguardo

 

Obrigado.

Link para o comentário
Compartilhar em outros sites

Em 07/07/2020 at 02:41, Juliomar Marchetti disse:

Muito estranho.

dll do openssl da versão 1.0 e demais dll estão junto com seu executável?

Dlls do openssl e libxml2 atualizadas estão na pasta do exe, e a capicom instalada normalmente pra ser usada tb, nas pastas corretas.

O erro ocorre na seguinte linha do ACBr, unit: ACBrWinHTTPReqResp:
      if not WinHttpSendRequest( fRequest,
                                 LPCWSTR(wHeader), Length(wHeader),
                                 WINHTTP_NO_REQUEST_DATA, 0,
                                 Length(Self.Data), 0) then
      begin
        UpdateErrorCodes(fRequest);
        raise EACBrWinReqResp.Create('Falha no Envio da Requisição.'+sLineBreak+
                                     GetWinInetError(FpInternalErrorCode));
      end;

Na ACBrWinINetReqResp, o erro ocorre aqui:
    if HttpSendRequest(fRequest, nil, 0, Pointer(Data), Length(Data)) then

não retorna True, e cai nessa condição:

    if not OK then
    begin
      //DEBUG
      //WriteToTXT('c:\temp\httpreqresp.log', FormatDateTime('hh:nn:ss:zzz', Now)+
      //   ' - Erro WinNetAPI: '+IntToStr(InternalErrorCode)+' HTTP: '+IntToStr(HTTPResultCode));

      raise EACBrWinReqResp.Create('Erro: Requisição não enviada.' + sLineBreak +
                                    GetWinInetError(InternalErrorCode));
    end;

Editado por Active.Matheus
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Me parece ser um problema na instalação do Certificado... evite A3.. eles são uma fonte constante de problemas...

Sugiro, rodar todas as atualizações do Windows, e depois re-instalar o Software do Certificado, conforme instruções do fornecedor do mesmo...

Sobre assinatura digital de .EXE, veja esse tópico:

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

14 horas atrás, Daniel Simoes disse:

Me parece ser um problema na instalação do Certificado... evite A3.. eles são uma fonte constante de problemas...

Sugiro, rodar todas as atualizações do Windows, e depois re-instalar o Software do Certificado, conforme instruções do fornecedor do mesmo...

Sobre assinatura digital de .EXE, veja esse tópico:

 

Bom dia Daniel.

Concordo sobre o A3, mas infelizmente isso não é algo que possamos ignorar, sendo que é uma opção disponível no mercado e nossos clientes escolhem o certificado que acham mais conveniente. 

Sobre atualização do software do certificado, já foi feito e não resolveu.

Sobre atualização do windows, também concordo com você, mas infelizmente isso é algo que não podemos fazer, dependemos da TI do cliente, e não temos um bom motivo para solicitar isso, sendo que o nosso software, numa versão mais antiga, compilada com Delphi XE8 e o ACBr um pouco mais antigo, funciona normalmente no mesmo ambiente.

E também o Demo do ACBR, compilado com o mesmo Delphi atualizado (Delphi Rio) e o ACBr atualizado, funciona normalmente com o mesmo ambiente.

Acredito que temos algo no nosso sistema, que talvez tenha mudado entre uma versão e outra, que possa estar conflitando, ou até mesmo o fato da versão do Delphi e o ACBr ser mais recente, estar exigindo algo a mais ou alguma atualização a mais que não conseguimos identificar.

Se você ou mais alguém tiver outras sugestões, agradecemos, pois já estamos ficando sem opções para testar, e estamos em vias de ter um grande problema com relação a isso, pois por exemplo, a MDFe está com novas obrigações que já estão implementadas na versão atual de nosso sistema, que não funciona com A3, e a versão antiga que está funcionando, não possui estas implementações, e não gostaríamos de ter que alterar os fontes da versão antiga para implementar as obrigações (retrabalho)

Muito obrigado pela atenção de todos, e continuaremos tentando aqui.

Em tempo, fiz uma solicitação de uma consultoria mais pessoal em uma das mensagens anteriores nessa thread, não tivemos uma resposta sobre isso. Se for possível, vamos conversar sobre isso.

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
3 horas atrás, Active.Matheus disse:

Sobre atualização do windows, também concordo com você, mas infelizmente isso é algo que não podemos fazer, dependemos da TI do cliente, e não temos um bom motivo para solicitar isso, sendo que o nosso software, numa versão mais antiga, compilada com Delphi XE8 e o ACBr um pouco mais antigo, funciona normalmente no mesmo ambiente.

há se tem esse caso dai é problema mesmo. precisa rodar e cobrar do cliente a atualização do windows 100%

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
  • Solution
4 horas atrás, Active.Matheus disse:

Se você ou mais alguém tiver outras sugestões, agradecemos, pois já estamos ficando sem opções para testar, e estamos em vias de ter um grande problema com relação a isso, pois por exemplo, a MDFe está com novas obrigações que já estão implementadas na versão atual de nosso sistema, que não funciona com A3, e a versão antiga que está funcionando, não possui estas implementações, e não gostaríamos de ter que alterar os fontes da versão antiga para implementar as obrigações (retrabalho)

Se você já identificou que o problema é o WARSAW, que removendo ele, tudo funciona, não tem muito mais o que fazer a não ser:

- Remover o WARSAW das máquinas onde o software vai executar

- Assinar o executável que talvez o WARSAW deixe de enxergar ele como suspeito

- Fazer reversão dos fontes da aplicação e de terceiros, ACBr incluso, pra descobrir qual alteração que dispara o problema com o WARSAW

Antes de eu assinar os meus executáveis, já tive problemas com essas aplicações de banco, apenas a existência de strings no exe com nomes de bancos fazia ele interferir, então alterando as strings no código de 'BRADESCO' para 'Bradesco' por exemplo já resolveu naquele momento.

4 horas atrás, Active.Matheus disse:

Em tempo, fiz uma solicitação de uma consultoria mais pessoal em uma das mensagens anteriores nessa thread, não tivemos uma resposta sobre isso. Se for possível, vamos conversar sobre isso.

Você pode contactar diretamente:

https://www.projetoacbr.com.br/forum/companies/category/2-consultores/

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
5 horas atrás, Active.Matheus disse:

Em tempo, fiz uma solicitação de uma consultoria mais pessoal em uma das mensagens anteriores nessa thread, não tivemos uma resposta sobre isso. Se for possível, vamos conversar sobre isso.

Eu te respondi em MP aqui no fórum

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

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.