Consultores Daniel InfoCotidiano Postado 10 Dezembro, 2023 Consultores Compartilhar Postado 10 Dezembro, 2023 (editado) Alguns dias atrás, eu postei aqui uma notícia de um exemplo em NodeJS para uso da ACBrLibNFe cedido por um usuário, clique aqui para ir para o post. Ele se baseou em um outro exemplo, conforme o post original. Mas alguns usuários relataram problemas como Segmentation fault, senha inválida ou erro ao ler certificado. Isso pode acontecer devido a incompatibilidade do certificado com a OpenSSL. Mas é fácil de resolver. Vamos ao testes: Primeiro ambiente Linux Mint 21 derivado do Ubuntu 22.04. Utilizando Node 12 e OpenSSL 1.1.1.1 Foram realizados com sucesso os testes em Multi-thread. Observe que temos 2 navegadores requisitando o status da Sefaz. Neste caso node 12, não funciona com OpenSSL 3.x.x.x com a lib. Agora vamos testar com a OpenSSL 3. Atenção: Para utilizar openssl 3.x.x.x, pode ser necessário instalar o certificado e após isso exportar ele novamente. Isso vai fazer com que ele seja recriado com "rotinas mais modernas" o que vai possibilitar a leitura no OpenSSL 3.x.x.x. Para saber mais, clique aqui. Veja abaixo como fazer na imagem: Instalado a versão OpenSSL 3.x.x.x parou de funcionar no meu ambiente com Node12. E mesmo instalando a versão Node16, o erro Segmentation fault persistiu. Em pesquisas encontrei que: "Node.js v17.x, v18.x, and v19.x use OpenSSL v3." Então Instalei o Node20 ! Agora meu ambiente está com Ubuntu 22.04, Node20 e OpenSSL 3.X Antes que me pergunte, sim, utilizei o mesmo exemplo construido no Node12. Ele funciona no Node16 e também funcionou no Node20 (foi uma das barreiras que enfrentei por não dominar a linguagem). Para que funcione, você precisa apagar a pasta Node_modules e os arquivos package.json e package-lock.json para que eles possam ser recriados com suas novas versões. Após isso precisa instalar os pacotes requeridos. Para saber qual, basta executar o exemplo.. Ao dar o erro ele vai mostrar o pacote faltando do Node. Observação importante: Verifique o ArquivoLog criado. Nele é apontado onde foi criado o arquivo acbrlib.ini. No meu caso em "\usr\bin". Precisei editar (em modo root) após trocar de VM, pois os paths não estavam corretos. Concluindo, o Node20: Suporta OpenSSL3, com a ACBrLibNFe MT Atual e com o INI Correto? Vamos aos testes... Realizado os testes no Ubuntu 22.04, OpenSSL 3, Node20 com Sucesso! Observe que tanto FireFox quanto Chrome estão recebendo reposta do certificado, com sucesso. Eu precisei fazer algumas alterações nos fontes do exemplo original, então vou anexar para que você possa sobrescrever = reqMt-alterado.zip Lembre-se de alterar os caminhos do certificados, paths e deixar de acordo com o seu ambiente. Espero ter ajudado! Editado 31 Janeiro por EMBarbosa Layout do texto. Deixar mais claro que precisa exportar o certificado. 5 Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 11 Dezembro, 2023 Fundadores Compartilhar Postado 11 Dezembro, 2023 tópico relacionado: Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link para o comentário Compartilhar em outros sites More sharing options...
Consultores Daniel InfoCotidiano Postado Há 9 horas Autor Consultores Compartilhar Postado Há 9 horas https://www.practicalnetworking.net/practical-tls/openssl-3-and-legacy-providers/ No Link acima pode solucionar o problema de compatibilidade openssl 1 Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts