Ir para conteúdo
  • Cadastre-se

dev botao

PFXDataToCertContextWinApi: Falha ao localizar o Certificado com a Chave Privada


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

Recommended Posts

  • Fundadores

O OpenSSL nunca dependeu das configurações do I.E... mas para suportar TLS 1.2, veja esse post:

2 horas atrás, streetacbr disse:

Consegui utilizando httpopenSSL.... realmente eu que estava configurando errado o componente, selecionando WinHttp ao invés de httpopenSSL

Correto... é isso mesmo

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

  • 4 semanas depois ...

Bom dia.

Quando defino a propriedade SSLLib com a opção libWinCrypt, recebo o seguinte erro ao assinar o XML:

Falha ao assinar o Envio de Evento 
Falha ao obter a Chave Privada do Certificado para Assinatura.

O erro é disparado na unit ACBrDFeXsMsXml.pas, linha 166:

dsigKey := Nil;
xmldsig.setStoreHandle( PCCERT_CONTEXT(FpDFeSSL.CertContextWinApi)^.hCertStore );
xmldsig.createKeyFromCertContext( FpDFeSSL.CertContextWinApi, dsigKey);

{GetProviderInfo( PCCERT_CONTEXT(FpDFeSSL.CertContextWinApi),
                 ProviderType,
                 ProviderName,
                 ContainerName);
dsigKey := xmldsig.createKeyFromCSP( ProviderType,
                                     WideString(ProviderName),
                                     WideString(ContainerName), 0);}
if (dsigKey = nil) then
  raise EACBrDFeException.Create('Falha ao obter a Chave Privada do Certificado para Assinatura.');

Provisoriamente estou utilizando:

SSLLib := libWinCrypt;
SSLXmlSignLib := xsXmlSec;

Obs.: O erro ocorre com certificados modelo A1 emitidos pela AC VALID RFB e AC BOA VISTA CERTIFICADORA.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Tudo indica, que o Certificado foi instalado sem a opção de Exportar a Chave Privada...

Você pode:
- Indicar o caminho para o arquivo PFX, ao invés de indicar o número de série do Certificado instalado no Windows
- Usar OpenSSL

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

Daniel, obrigado pelo retorno rápido.

O cenário é o seguinte:
- Serviço do Windows para Pesquisa e Manifestação do Destinatário com agendamentos.
- O Certificado é carregado diretamente do banco de dados através da propriedade DadosPFX.
- Até então utilizava OpenSSL, porém recebia muitos erros de conexão com o WS.

WebService Distribuição de DFe:
- Inativo ou Inoperante tente novamente.
Erro Interno: 0
Erro HTTP: 403

WebService Distribuição de DFe:
- Inativo ou Inoperante tente novamente.
Erro Interno: 10091
Erro HTTP: 0

WebService Distribuição de DFe:
- Inativo ou Inoperante tente novamente.
Erro Interno: 10091
Erro HTTP: 500

WebService Distribuição de DFe:
- Inativo ou Inoperante tente novamente.
Erro Interno: 11001
Erro HTTP: 500

WebService Distribuição de DFe:
- Inativo ou Inoperante tente novamente.
Erro Interno: 10091
Erro HTTP: 0

Com a libWinCrypt não recebo nenhum desses erros, porém encontrei o problema mencionado acima com a assinatura dos eventos.

Link para o comentário
Compartilhar em outros sites

Em 24/04/2017 at 12:05, Allan Wolski disse:

Daniel, obrigado pelo retorno rápido.

O cenário é o seguinte:
- Serviço do Windows para Pesquisa e Manifestação do Destinatário com agendamentos.
- O Certificado é carregado diretamente do banco de dados através da propriedade DadosPFX.
- Até então utilizava OpenSSL, porém recebia muitos erros de conexão com o WS.


WebService Distribuição de DFe:
- Inativo ou Inoperante tente novamente.
Erro Interno: 0
Erro HTTP: 403

WebService Distribuição de DFe:
- Inativo ou Inoperante tente novamente.
Erro Interno: 10091
Erro HTTP: 0

WebService Distribuição de DFe:
- Inativo ou Inoperante tente novamente.
Erro Interno: 10091
Erro HTTP: 500

WebService Distribuição de DFe:
- Inativo ou Inoperante tente novamente.
Erro Interno: 11001
Erro HTTP: 500

WebService Distribuição de DFe:
- Inativo ou Inoperante tente novamente.
Erro Interno: 10091
Erro HTTP: 0

Com a libWinCrypt não recebo nenhum desses erros, porém encontrei o problema mencionado acima com a assinatura dos eventos.

Olá Allan, estou com o mesmo problema. Você obteve algum avanço utilizando a opção libWinCrypt para a propriedade SSLLIB?

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Também estava com o mesmo problema, em um certificado emitido pela VALID, mas apenas copiando as DLLs da pasta XMLSec não resolveu...

Consegui resolver da seguinte forma:

- Exportei o certificado pelo Internet Explorer (com a chave privada)
- Removi o certificado pelo Internet Explorer
- Baixei o instalador de certificados da VALID (http://www.validcertificadora.com.br/instalador) - primeiro link disponível.
- Executei o instalador e selecionei o arquivo que exportei no começo.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Boa tarde,

Eu estou migrando os meu clientes para essa versão do Wincrypt e em algum clientes que possuem o certificado A1 também estou tendo esse problema

na linha 166 a Unit ACBrDFeXsMsXml dispara o Exception

if (dsigKey = nil) then
        raise EACBrDFeException.Create('Falha ao obter a Chave Privada do Certificado para Assinatura.');

Para resolver isso eu peguei o certificado instale no Windows XP marcando aquela opção para exportar a chave privada e depois baixei ele novamente e configurei no sistema e funcionou normalmente.

 

Mas por que que acontece este erro?

tem alguma outra forma mais pratica para resolver isso?

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
20 minutos atrás, Paulo Alexandre Hostert disse:

Bom dia,

Tenho alguns casos onde isso acontece, ai instalo o certificado utilizando o instalador VALIDCertificadora.

http://www.validcertificadora.com.br/Instalador

Exatamente! ontem me ocorreu isso! ajuda do amigo @Régys Silveira que me lembrou desse detalhe.

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 2017-5-12 at 16:19, Cleonir disse:

Boa tarde,

Eu estou migrando os meu clientes para essa versão do Wincrypt e em algum clientes que possuem o certificado A1 também estou tendo esse problema

na linha 166 a Unit ACBrDFeXsMsXml dispara o Exception

if (dsigKey = nil) then
        raise EACBrDFeException.Create('Falha ao obter a Chave Privada do Certificado para Assinatura.');

Para resolver isso eu peguei o certificado instale no Windows XP marcando aquela opção para exportar a chave privada e depois baixei ele novamente e configurei no sistema e funcionou normalmente.

 

Mas por que que acontece este erro?

tem alguma outra forma mais pratica para resolver isso?

 

Bom dia!

Estou tendo o mesmo problema, só que o meu é um certificado Cartão A3, da Boa Vista.

Alguma sugestão?

 

Desde já agradeço.

Emerson Crema

Max Scalla Informática Ltda.

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...
  • Consultores

Bom dia Wether,

Posso esta enganado, pois não tenho muito conhecimento, mas acredito que não seja possível realizar a exportação de um A3 para gerar o arquivo pfx.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Wether,

O problema esta na configuração do componente.

No caso do certificado A3:

Atribua vazio as propriedades: ArquivoPFX e DadosPFX.

E atribua o numero de série do certificado a propriedade NumeroSerie.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2400 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.