Jump to content

Promoção de Natal SAC Mensal

Contrate e ganhe 1 Kit agenda + Caneta
Saiba mais

LANÇAMENTO
Curso Completo - Dominando o ACBrMonitor

Conheça o Curso

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Daniel Simoes

ACBrDFe OpenSSL e TLS1.2

Recommended Posts

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/

 

 

 

  • Like 24
  • Thanks 6

Consultor SAC ACBr

Daniel Simões de Almeida
Ajude o Projeto ACBr crescer - Assine o SAC

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

Share this post


Link to post
Share on other sites

@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

Share this post


Link to post
Share on other sites

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
Ajude o Projeto ACBr crescer - Assine o SAC

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

Share this post


Link to post
Share on other sites

Consegui arrumar!!!

Apenas as DLL, da pasta da aplicação que tinha algumas que estava conflitando.

Eu limpei as DLL, e coloquei apenas as necessárias. Funcionou perfeitamente!

Valeu galera!

Abraço!

 

  • Like 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...