Ir para conteúdo
  • Cadastre-se

dev botao

ACBrDFe OpenSSL e TLS1.2


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

Recommended Posts

  • Fundadores

Olá pessoal,

Acabei de enviar para o SVN, modificações para que o ACBrDFe e ACBrDFeOpenSSL suportem comunicação segura usando TLS 1.2

Citar

23/12/2016
-- ACBrDFeOpenSSL --
[+] Adicionada a propriedade "SSLType: TSSLType default LT_all", podendo ser:
    (LT_all, LT_SSLv2, LT_SSLv3, LT_TLSv1, LT_TLSv1_1, LT_TLSv1_2, LT_SSHv2)

O componente ACBrNFe, já irá tentar ajustar a comunicação para TLS 1.2, se detectar que a versão é superior a 3.1

Citar

23/12/2016
-- ACBrNFeWebServices --
[*] Método: TNFeWebService.InicializarServico, modificado para ajustar o tipo de
    comunicação para TLS1.2, se VersaoDF > ve310 e SSLlib = libOpenSSL
    (por: DSA)  

 

Atualizando o OpenSSL

 

ErroOpenSSLInferior101.png
Para usar TLS 1.2, é necessário ter a versão do OpenSSL superior a 1.0.1, normalmente a versão usada é a 0.9.8.14, e portanto ela precisa ser substituída. Se você tentar utilizar uma versão inferior, o ACBrDFeOpenSSL acusará o seguinte erro:

 

 

Porém não basta apenas baixar e copiar uma nova versão das DLLs do OpenSSL (libeay32.dll e ssleay32.dll).  O problema, é que a libxmlsec, que se encontra na pasta: "ACBr\DLLs\XMLSec", não é compatível com OpenSSL superior a 0.9.8...  :( e se você simplesmente atualizar as Libs do OpenSSL no seu sistema, provavelmente o ACBrNFe, passará a acusar Exceptions no momento de assinar o XML

A solução, é utilizar um novo conjunto de DLLs, da OpenSSL e libXmlSec, libXML, e demais... você pode achar essas DLLs em: ftp://ftp.zlatkovic.com/libxml/

Essas DLLs foram compiladas com "MinGW", e portanto elas precisarão das DLLs de RunTime, da MinGW. Para sua conveniência, copiamos todas as DLLs necessárias para a pasta: \ACBr\\DLLs\XMLSec\MinGW.

Observe que temos a versão 32 e 64 bits dessas DLLs... quais eu devo usar ? Em resumo, use 32 se o seu Compilador é 32 bits, e 64 apenas se você estiver usando um Compilador que gere .EXE em 64 bits...

Leia esse tópico, para compreender melhor:

Copie TODAS as DLLs (e não somente algumas)  da pasta "\ACBr\DLLs\XMLSec\MinGW\32" ou "\ACBr\trunk2\DLLs\XMLSec\MinGW\64" (conforme o seu compilador), para o seu diretório de DLLs... (se não tem certeza para onde você deve copiar as DLLS, leia com atenção o Post indicado anteriormente)

 

Outro problema, é que a MinGW, gera as DLLs com uma nomenclatura ligeiramente diferente do VisualC, exemplo: libxmlsec1.dll com MinGW, e "libxmlsec.dll" com VisualC. Portanto, o ACBr teria dificuldades em encontrar essas DLLs e carrega-las de forma dinâmica.

Precisamos portanto, informar ao ACBr, que usaremos o conjunto de DLLs no formato da MinGW... Isso é feito, editando o arquivo: ACBr.inc.

Repare que lá no final do ACBr.inc, temos a seguinte linha:

{.$DEFINE USE_MINGW}

Apenas remova o ".", alterando para:

{$DEFINE USE_MINGW}   

 

Pronto...  com isso você estará pronto para usar o ACBr com OpenSSL e TLS 1.2, seja em 32 ou 64 bits...

 

Obrigado... e considere nos ajudar, contratando o SAC ocasionalmente:
http://www.projetoacbr.com.br/forum/sacv2/sobre/
http://www.projetoacbr.com.br/forum/sacv2/questoes_importantes/

http://www.projetoacbr.com.br/forum/sacv2/cadastro/

 

 

 

  • Curtir 24
  • Obrigado 6
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

  • Membros Pro

@Daniel Simoes Apenas uma dúvida, hoje eu compilo o ACBrMonitorPLUS, eu mudando a diretiva {$DEFINE USE_MINGW} vai afetar algo no comportamento do Monitor?

Exemplo, notas na versão 3.10 com OpenSSL continuaram a funcionar? Meus clientes configurados em CAPICOM continuaram a funcionar?

Pergunto isso porque usando CAPICOM já está tudo certo na versão 4.0 e preciso mudar meu sistema para funcionar também com OpenSSL e tenho clientes configurados dos dois jeitos.

Desde já agradeço a atenção.

 

Obrigado

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Mudo o que está descrito no tópico.. ou seja, você precisa de um novo jogo de DLLs.

a Diretiva MinGW apenas afetará o suporte a XMLSec, ou seja, não tem nenhuma relação com a CAPICOM

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

  • 2 meses depois ...
  • 1 mês depois ...
  • 1 mês depois ...
  • Membros Pro

Amigos, após configurar o ACBr.inc para usar as biblioteca MingW {$DEFINE USE_MINGW}, eu consigo compilar e reinstalar o componente normalmente, sem erros, mas ao tentar abrir o Delphi ele me retorna o seguinte erro:

não foi possivel carregar acbr_nfe.bpl

Os arquivos .bpl estão na pasta, já fiz a desinstalação e instalação novamente e mesmo usando a opção para limpar os arquivos antigos, não funciona.

Um detalhe é que se eu comentar a linha {$DEFINE USE_MINGW} novamente, volta a funcionar tudo normalmente.

Alguem tem alguma dica?

 

Gilson do Carmo
WindSoft Sistemas

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Após ativar a diretiva, seu Delphi passará a ficar dependente das DLLs de:

http://svn.code.sf.net/p/acbr/code/trunk2/DLLs/XMLSec/MinGW/32/

  • Obrigado 2
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

  • 1 mês depois ...
  • Este tópico foi criado há 2362 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...