Ir para conteúdo
  • Cadastre-se

dev botao

ACBrDFe OpenSSL e TLS1.2


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