Ir para conteúdo
  • Cadastre-se

dev botao

OpenSSL (MinGW) - Erro Interno: 10091 Erro HTTP: 500


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

Recommended Posts

Olá pessoal,

Encontrei outros posts sobre esse assunto, mas nenhum deu uma solução satisfatória, pois muitos conseguiram fazer funcionar mudando a configuração para Wincrypt ou Capicom, mas não queria partir para essa solução, já que para certificados A1 com OpenSSL com MinGW, não tenho que me preocupar com atualizações do Windows, ou configurações do IE.

O cenário que está ocorrendo o problema, é que o cliente estava utilizando o seu certificado A1 normalmente, emitindo NF-e / NFC-e 4.0, com OpenSSL com MinGW, então estava perto de expirar o seu certificado e então adquiriu um novo A1, e agora simplesmente não funciona com o novo certificado, dando o erro: Erro Interno: 10091  Erro HTTP: 500.

As configurações utilizadas são de OpenSSL com MinGW:

libOpenSSL: SSLCryptLib = cryOpenSSL; SSLHttpLib = httpOpenSSL; SSLXmlSignLib = xsXmlSec;

As dlls ficam junto do meu executável, são as mesmas copiadas da pasta ACBr\DLLs\XMLSec\MinGW\32

O certificado é informado via diretório, apontando para o arquivo pfx.

Esse cliente em específico é de GO e peguei o certificado dele e o mesmo ocorre em minha máquina.

O que vocês sugerem pessoal? Porque parou de funcionar com a solução OpenSSL com MinGW?

Quem puder ajudar, agradeço desde já.

Link para o comentário
Compartilhar em outros sites

Bom dia Fabrício,

Utilize as seguintes configurações:

  FACBrNFe.Configuracoes.Geral.SSLLib                   := libWinCrypt;
  FACBrNFe.Configuracoes.Geral.SSLCryptLib              := cryWinCrypt;
  FACBrNFe.Configuracoes.Geral.SSLHttpLib               := httpWinHttp;
  FACBrNFe.Configuracoes.Geral.SSLXmlSignLib            := xsMsXml;

O único porém é que o windows realmente precisa ser atualizado, mas essa configuração serve até mesmo para os certificados A3.

E verifique se as dlls da pasta: 

ACBr\DLLs\OpenSSL\1.0.2.13\x86

encontram-se atualizadas junto ao seu executável.

Link para o comentário
Compartilhar em outros sites

Obrigado por tentar ajudar @Augusto Knirsch, mas não queria dar essa solução de modificar a configuração e ter a dependência do Windows atualizado, por isso queria identificar o que é necessário fazer para que continue funcionando com a OpenSSL com MinGW que funcionava antes normalmente.

Link para o comentário
Compartilhar em outros sites

@Fabrício G. Araújo Normalmente quando ocorre esse problema é atualização do windows. 

Tenta logar com o certificado nesse link https://cav.receita.fazenda.gov.br/autenticacao/login talvez o problema seja o próprio certificado.

Editado por Augusto Knirsch
Inclusão de informação
Link para o comentário
Compartilhar em outros sites

  • Moderadores
Em 09/11/2018 at 07:56, Fabrício G. Araújo disse:

Obrigado por tentar ajudar @Augusto Knirsch, mas não queria dar essa solução de modificar a configuração e ter a dependência do Windows atualizado, por isso queria identificar o que é necessário fazer para que continue funcionando com a OpenSSL com MinGW que funcionava antes normalmente.

Bom dia, Fabrício G. Araújo.

Veja o tópico abaixo, talvez possa te ajudar:

 

Equipe ACBr

Felipe Eduardo Resende Mesquita

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

Até onde sei @Augusto Knirsch, com OpenSSL com MinGW funcionaria até no WinXP que nem sequer tem suporte a TLS 1.2, portanto não tem dependência do Windows.

O duro é que em GO passou a ser obrigatório o uso de NFC-e no início do ano, então vários clientes adquiriram certificados A1 no fim do ano passado, que agora estarão renovando o certificado e estão começando a apresentar esse erro ao substituir o certificado.

Link para o comentário
Compartilhar em outros sites

@Felipe E. Resende Mesquita, obrigado por tentar ajudar. Verifiquei todo o tópico, e novamente se enquadra em alterações de configuração com ou uso de OpenSSL com SSLHttpLib com httpWinINet (aí voltamos a ter dependência de atualização do Windows e config. do IE), ou outra sugestão foi deixar de utilizar a MinGW (que preferia manter, até para não dar conflito com outro sistema que por acaso utilizasse a openssl original, até porque as dlls da MinGW possui nomes diferentes e as mantenho junto do exe).

Vale lembrar que tenho vários clientes em GO utilizando normalmente a solução OpenSSL com MinGW (inclusive com SSL.SSLType = LT_TLSv1_2), mas com a substituição do certificado estão parando de funcionar.

É aquela estória... acredito que com certeza o problema está com o novo certificado, mas não sei o que é, fiz várias coisas como atualizar várias cadeias, instalar o certificado e exportar novamente para arquivo depois de instalar novas cadeias e nada de funcionar.

Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 hora atrás, Fabrício G. Araújo disse:

Até onde sei @Augusto Knirsch, com OpenSSL com MinGW funcionaria até no WinXP que nem sequer tem suporte a TLS 1.2, portanto não tem dependência do Windows.

O duro é que em GO passou a ser obrigatório o uso de NFC-e no início do ano, então vários clientes adquiriram certificados A1 no fim do ano passado, que agora estarão renovando o certificado e estão começando a apresentar esse erro ao substituir o certificado.

Está testando em homologação ou produção?

Que saiba GO nunca funcionou com OpenSSL em homologação.

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

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
Em 09/11/2018 at 09:10, Fabrício G. Araújo disse:

@Felipe E. Resende Mesquita, obrigado por tentar ajudar. Verifiquei todo o tópico, e novamente se enquadra em alterações de configuração com ou uso de OpenSSL com SSLHttpLib com httpWinINet (aí voltamos a ter dependência de atualização do Windows e config. do IE), ou outra sugestão foi deixar de utilizar a MinGW (que preferia manter, até para não dar conflito com outro sistema que por acaso utilizasse a openssl original, até porque as dlls da MinGW possui nomes diferentes e as mantenho junto do exe).

Vale lembrar que tenho vários clientes em GO utilizando normalmente a solução OpenSSL com MinGW (inclusive com SSL.SSLType = LT_TLSv1_2), mas com a substituição do certificado estão parando de funcionar.

É aquela estória... acredito que com certeza o problema está com o novo certificado, mas não sei o que é, fiz várias coisas como atualizar várias cadeias, instalar o certificado e exportar novamente para arquivo depois de instalar novas cadeias e nada de funcionar.

Tente fazer da seguinte forma: desinstale o certificado, baixe o Instalador da VALID, use o mesmo para instalar o certificado e depois exporta para PFX. http://www.validcertificadora.com.br/suporte

Equipe ACBr

Felipe Eduardo Resende Mesquita

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

39 minutos atrás, BigWings disse:

Está testando em homologação ou produção?

Que saiba GO nunca funcionou com OpenSSL em homologação.

@BigWings, estou testando em homologação. Mas em GO em homologação só não funciona o StatusSevico, que nem uso, se enviar funcionava normalmente. Mas para desencargo de consciência vou ver se consigo outro certificado A1 de outro cliente e vou validar o ambiente em GO novamente.

37 minutos atrás, Felipe E. Resende Mesquita disse:

Tente fazer da seguinte forma: desinstale o certificado, baixe o Instalador da VALID, use o mesmo para instalar o certificado e depois exporta para PFX. http://www.validcertificadora.com.br/suporte

@Felipe E. Resende Mesquita, tinha visto exatamente essa dica sua em outro post, já tentei ela. Usei o instalador da VALID (utilizei esse que baixei agora InstaladorCadeias_1.0.2.0.exe), então instalei o certificado, exportei para arquivo pfx e nada. Inclusive para a exportação ainda utilizei essa dica aqui: https://suporte.contabilizei.com.br/hc/pt-br/articles/213827443-Como-exportar-o-seu-certificado-digital-A1-com-chave-privada

Link para o comentário
Compartilhar em outros sites

Eita @BigWings, mesmo com outro certificado, que o cliente está emitindo normalmente em produção, o ambiente de homologação em GO dá o mesmo erro... agora me enrolei mesmo. Será que a questão do problema em homologação está refletindo em produção em GO? O chato é que só está acontecendo com os novos certificados... já não sei mais o que testar, mais alguma sugestão?

Link para o comentário
Compartilhar em outros sites

  • Moderadores
9 minutos atrás, Fabrício G. Araújo disse:

Eita @BigWings, mesmo com outro certificado, que o cliente está emitindo normalmente em produção, o ambiente de homologação em GO dá o mesmo erro... agora me enrolei mesmo. Será que a questão do problema em homologação está refletindo em produção em GO? O chato é que só está acontecendo com os novos certificados... já não sei mais o que testar, mais alguma sugestão?

Não entendi se o problema está ocorrendo também em produção...

Além de alterar para httpWinHttp, não tenho nada a sugerir.

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

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

3 minutos atrás, BigWings disse:

Não entendi se o problema está ocorrendo também em produção...

Além de alterar para httpWinHttp, não tenho nada a sugerir.

Tenho vários clientes em produção utilizando OpenSSL com MinGW em GO sem problemas, agora estão atualizando os certificados que estão expirando e está parando de funcionar em seus ambientes (produção), dado o erro do título do tópico.

Então peguei o problema para analisar e fiquei sem ter como testar (em homologação) com OpenSSL com MinGW, pois infelizmente em GO em homologação não funciona nem os certificados antigos e nem os novos.

Sobre alterar para httpWinHttp, sei que não depende de configurações do IE, mas não tenho como fugir da atualização do Windows né?

Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 hora atrás, Fabrício G. Araújo disse:

Tenho vários clientes em produção utilizando OpenSSL com MinGW em GO sem problemas, agora estão atualizando os certificados que estão expirando e está parando de funcionar em seus ambientes (produção), dado o erro do título do tópico.

Então peguei o problema para analisar e fiquei sem ter como testar (em homologação) com OpenSSL com MinGW, pois infelizmente em GO em homologação não funciona nem os certificados antigos e nem os novos.

Sobre alterar para httpWinHttp, sei que não depende de configurações do IE, mas não tenho como fugir da atualização do Windows né?

 HttpWinHttp não tem dependência com as configurações do IE. Se você não for usar OpenSSL, terá que realizar todas instalações de atualização do Windows, lembrado que XP não vai funcionar.

Veja o vídeo e o anexo no tópico abaixo:

 

Equipe ACBr

Felipe Eduardo Resende Mesquita

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

Agora, Felipe E. Resende Mesquita disse:

Se você não for usar OpenSSL, terá que realizar todas instalações de atualização do Windows, lembrado que XP não vai funcionar.

Ainda bem que não tenho mais clientes com WinXP, fiz até um teste na época por curiosidade e até funcionou, mas mesmo assim fiz com que os clientes migrassem.

Pois é... infelizmente não estou vendo outra saída... estou chegando a conclusão que pelo jeito em GO em produção (com alguns certificados A1, principalmente novos) não existe nenhuma solução que não dependa da atualização do Windows e/ou configurações do IE. Tinha migrado para OpenSSL justamente por não ter que passar pelo transtorno da atualização do Windows, dando uma solução imediata para o cliente na época.

Desanimante uma coisa dessas... ? e sem saber o que está acontecendo.

Obrigado por tentar ajudar.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 hora atrás, Fabrício G. Araújo disse:

Ainda bem que não tenho mais clientes com WinXP, fiz até um teste na época por curiosidade e até funcionou, mas mesmo assim fiz com que os clientes migrassem.

Pois é... infelizmente não estou vendo outra saída... estou chegando a conclusão que pelo jeito em GO em produção (com alguns certificados A1, principalmente novos) não existe nenhuma solução que não dependa da atualização do Windows e/ou configurações do IE. Tinha migrado para OpenSSL justamente por não ter que passar pelo transtorno da atualização do Windows, dando uma solução imediata para o cliente na época.

Desanimante uma coisa dessas... ? e sem saber o que está acontecendo.

Obrigado por tentar ajudar.

É complicado...Toda Sefaz tem algum problema...Infelizmente temos que ajustar para atendê-los.

  • Obrigado 1
Equipe ACBr

Felipe Eduardo Resende Mesquita

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

Pessoal, ainda estou fazendo pesquisas e testes para ver se é possível fazer algo para que volte a funcionar em GO com OpenSSL os novos certificados.

Dando um recapitulada, caso pegue um certificado A1 de um cliente em que está assim:

image.png.bcb7c23f486db9b33b4e4a2b8b893176.png

Funciona normalmente o status serviço em Produção em GO, como o Demo, inclusive o cliente está emitindo normalmente com OpenSSL MinGW em nosso sistema.

Já com outro certificado A1 mais novo, que está assim:

image.png.2f8a0a43b218dd28024f9f8f6d761d65.png

NÃO funciona o status serviço em Produção em GO, como o Demo, esse cliente não funciona de jeito nenhum com OpenSSL MinGW, somente com Wincrypt (com httpWinHttp).

Vale lembrar que todas as cadeias de certificados estão instaladas em minha máquina, tanto é que com Wincrypt funciona normalmente.

Ah, só lembrando também do erro antigo em GO, que em Homologação nenhum dos certificados funciona em GO o status serviço com o Demo.

...

Agora vem alguns questionamentos que talvez a comunidade e principalmente os moderadores possam ajudar nas pesquisas.

1 - Não entendo como funciona internamente a questão do funcionamento dos certificados, mas a suspeita é que com OpenSSL a cadeia de certificados não é enviada. Isso procede? 

2 - O Wincrypt funciona pois envia junto as cadeias de certificados associadas?

3 - Se a suspeita 1 acima procede, suspeitamos que os servidores de GO em Homologação não possuem as cadeias instaladas, e em Produção só não possui as últimas cadeias instaladas, pois o certificado mais antigo funciona (Raiz Bras. v2 e Secr. RF v3) e o mais novo não (Raiz Bras. v5 e Secr. RF v4). Esse entendimento está correto?

4 - Agora vem a grande questão: É possível fazer alguma adaptação para que o OpenSSL MinGW envie a cadeia de certificados? Quem participou do desenvolvimento do projeto teria como dar algum direcionamento para que possamos tentar efetuar esse procedimento e se obter sucesso compartilhar com a comunidade?

Desculpem pelo grande texto, mas ainda estou empenhado a achar uma solução para GO com OpenSSL MinGW, agradeço a todos que puderem contribuir.

Link para o comentário
Compartilhar em outros sites

Pessoal, referente ao erro postado pelo @Fabrício G. Araújo

Fazendo testes aqui encontrei uma solução e gostaria da opinião de vocês se posso fazer as alterações ou se alguém tem alguma outra sugestão melhor.

Para que o ambiente de Goiás voltasse a funcionar com as novas cadeias de certificado tive que fazer  o seguinte procedimento.

1 - Pegar o certificado A1 do cliente que tenho com o nome Cert.pfx e utilizando o OpenSSL fiz a exportação do certificado para Cert.pem.

2 - dentro da classe ACBrDFeHttpOpenSSL no método configuraHTTP acrescentei essas duas linha de código para testar 

FHTTP.Sock.SSL.VerifyCert:=true ;
FHTTP.Sock.SSL.CertCAFile:='d:\dados\cert\cert.pem';

ao fazer isso o ambiente voltou a funcionar, inclusive no ambiente de homologação que nunca havia funcionado.

agora a mudança que precisa ser feita é a seguinte:

  fazer um propriedade que seja idêntica ao que carrega o certificado PFX só que apontando

para carregar o certificado PEM, assim podemos fazer verificação se for ambiente de GO efetuar o carregamento desse certificado dentro da propriedade certCAFile do http.

O que vocês acham?

 

Editado por Anizair Lopes
  • Curtir 2
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • 6 meses depois ...
  • 5 semanas depois ...

Desculpe a grande demora @Daniel Simoes,

Infelizmente não é mais possível reproduzir o problema com a SEFAZ/GO em homologação. Resolvi testar hoje, pois o ambiente de homologação ficou com problemas ontem, e hoje tinha voltado a dar o erro 10091, só que com os meus fontes modificados enviando o .pem, que já estava funcionando normalmente.

Então aproveitei e resolvi reproduzir o erro original, não enviando o .pem, só que para minha surpresa, voltou a funcionar, com o executável original da época... ou seja, o ambiente de homologação de GO foi modificado, não sendo possível mais reproduzir o erro original, para depois testar as suas modificações.

Agora vou ficar atento, se por ventura, algum dia volte a ter problemas em produção, que até o momento está tudo ok, então terei as possibilidades de testes.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

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