Ir para conteúdo
  • Cadastre-se

leoprates

Membros Pro
  • Total de ítens

    47
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que leoprates postou

  1. Pessoal, O Lucas que faz o serviço da nuvem para nós conseguiu resolver. Ele viu que hoje o Daniel enviou o passo a passo e no fim enviou a versão das ferramentas. Ao testar com o node 12 funcionou. Antes disso testamos da 14 para cima .
  2. Daniel, vou seguir os passos que você recomendou. Apenas uma dúvida, no link da instalação (https://acbr.sourceforge.io/ACBrLib/ComoInstalarDistribuir.html) é dito que devo "copiar as Bibliotecas, para algum dos diretórios do LibPath do Sistema operacional, como por exemplo: /usr/lib64". A quais bibliotecas esse trecho se refere? Seriam das libs openssl, libxml2 e libgtk2.0-0?
  3. Bom dia pessoal! Seria possível o Daniel InfoCotidiano me passar o passo a passo de como ele configurou o ambiente dele? Testei de diversas maneiras no WSL Ubuntu, em uma VM, com Docker, e também pedi para o pessoal de infraestrutura que lida com nossos serviços na nuvem usando AWS testar, mas todos sempre encontram o mesmo problema que eu.
  4. Mais uma coisa, quando testo o certificado com openssl s_client ele retorna "verify error:num=20:unable to get local issuer certificate"
  5. Renato, testando o certificado com o curl tenho retornos diferentes quando usando o PFX e quando o transforme em PEM. Certificado PFX root@maure:/home/node/Projeto# curl -I --cert ./tmp/certificado/certificado.pfx --pass minha_senha https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx curl: (58) could not load PEM client certificate, OpenSSL error error:0480006C:PEM routines::no start line, (no key found, wrong pass phrase, or wrong file format?) Certificado PEM + key curl -I --cert ./tmp/certificado/certificado.pem --key ./tmp/certificado/chave-privada.pem -k https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx Enter PEM pass phrase: HTTP/1.1 405 Method Not Allowed Cache-Control: private Content-Length: 3508 Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/8.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Tue, 17 Oct 2023 12:15:45 GMT
  6. Instalei a versão 1.1.1f do OpenSSL e continuo na mesma situação. SSLType eu testei cada um deles e, os que são compativeis, retornam sempre a mesma mensagem do log em anexo. ACBrLibNFE-20231016.log
  7. Boa tarde a todos! Seguindo a última recomendação do Renato e do Daniel e também reinstalando meu ubuntu do zero, o erro de Segmentation Fault parou de ocorrer. Agora, apenas o erro abaixo está sendo exibido. Daniel, poderia me enviar seu acbrlib.ini para eu verificar se pode ser alguma propriedade não preenchida ou preenchida de maneira incorreta? O openssl está na versão correta "OpenSSL 1.1.1q 5 Jul 2022". Tentei deixar um arquivo em anexo com os comandos que utilizei na configuração do ambiente, porém o servidor não permite o envio (então enviarei como .rar) Log: 16/10/23 16:40:42:979 - TLibNFeConfig.AplicarConfiguracoes: ./tmp/acbrlib.ini 16/10/23 16:40:42:979 - Travar 16/10/23 16:40:42:979 - TLibNFeConfig.AplicarConfiguracoes - Feito 16/10/23 16:40:42:979 - Destravar 16/10/23 16:40:42:979 - SetRetorno(0, ) 16/10/23 16:40:42:980 - NFe_DistribuicaoDFePorUltNSU(35,06319316000127,000000000000001) 16/10/23 16:40:42:980 - Travar 16/10/23 16:40:42:980 - NFe_DistribuicaoDFePorUltNSU, Executar 16/10/23 16:40:42:998 - Destravar 16/10/23 16:40:42:998 - SetRetorno(-16, WebService Distribuição de DFe: - Inativo ou Inoperante tente novamente. Erro Interno: -2 Erro HTTP: 500 URL: https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx error:140AB18E:SSL routines:func(171):reason(398) MotivoRetornadoDoWebService: "") 16/10/23 16:40:42:999 - LIB_Finalizar 16/10/23 16:40:42:999 - Finalizar comandos.rar
  8. Boa tarde Renato! Testei a execução do método da Distribuição com o ambiente mais limpo possível (utilizei o exemplo do SVN). Executando o script no windows com a DLL o código funciona corretamente (assim como meu código com serverless, caso testado no windows). Ao executar no linux com a lib SO ele retorna o erro Segmentation Fault. Criei um repo no github com o código e um readme.md para facilitar a simulação para vocês. Segue o link: https://github.com/Maurelima/acbr-demo-linux.git
  9. Claro! Estou enviando um link para download, pois ao tentar anexar o arquivo aqui é exibido um erro. https://mega.nz/file/tjQAWaja#6dOBC3sxUqYrxLQGrXy6beboGcG7ChKENbTq5qMy1JU
  10. Debugando com segfault-handler o retorno é o log abaixo: NFE_DistribuicaoDFePorUltNSU PID 24905 received SIGSEGV for address: 0x18 /home/node/erp-cloud-recepcao-xml-automatica/.esbuild/.build/node_modules/segfault-handler/build/Release/segfault-handler.node(+0x37a5)[0x7f4bb009f7a5] /lib/x86_64-linux-gnu/libpthread.so.0(+0x14420)[0x7f4bb23b2420] /lib/x86_64-linux-gnu/libpthread.so.0(pthread_rwlock_wrlock+0x16)[0x7f4bb23abd46] node(CRYPTO_THREAD_write_lock+0x9)[0x1966af9] node(ossl_x509v3_cache_extensions+0x3e)[0x19dbbde] node(X509_get_extension_flags+0x11)[0x19dca81] /usr/local/lib/libssl.so(+0x6c4a5)[0x7f4b904c84a5] /usr/local/lib/libssl.so(SSL_CTX_use_certificate+0x2a)[0x7f4b904a021a] /home/node/erp-cloud-recepcao-xml-automatica/assets/acbr/dllacbrnfe/bin/Linux/libacbrnfe64.so(+0x50a452)[0x7f4b92425452] Segmentation fault
  11. Criei um novo ambiente do zero e o problema continua. (recepcao-2) root@maure:/home/node/erp-cloud-recepcao-xml-automatica# openssl version OpenSSL 1.1.1q 5 Jul 2022 Ou da o erro de segmentation ou o do log 13/10/23 14:24:56:644 - NFe_DistribuicaoDFePorUltNSU(35,06319316000127,000000000000001) 13/10/23 14:24:56:644 - Travar 13/10/23 14:24:56:644 - NFe_DistribuicaoDFePorUltNSU, Executar 13/10/23 14:24:56:700 - Destravar 13/10/23 14:24:56:700 - SetRetorno(-16, WebService Distribuição de DFe: - Inativo ou Inoperante tente novamente. Erro Interno: -2 Erro HTTP: 500 URL: https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx error:140AB18E:SSL routines:func(171):reason(398) MotivoRetornadoDoWebService: "") 13/10/23 14:24:56:703 - LIB_UltimoRetorno 13/10/23 14:24:56:703 - MoverStringParaPChar. StrLen:272, BufLen:39000 13/10/23 14:24:56:703 - Codigo:-16, Mensagem:WebService Distribui[195][167][195][163]o de DFe:[CR][LF]- Inativo ou Inoperante tente novamente.[LF]Erro Interno: -2[LF]Erro HTTP: 500[LF]URL: https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx[LF]error:140AB18E:SSL routines:func(171):reason(398)[LF][LF] MotivoRetornadoDoWebService: ""
  12. Olá, Diego! No windows tem funcionado sem problema. Meu microsserviço de emissão de NFE funciona no mesmo ambiente que o de recepção de XML e não da problema com o SSL. Para sanarmos essa possibilidade removi o openssl instalado, vou criar um novo ambiente no WSL com conda e instalar todas as dependências do zero para testar. Logo menos retorno. De já, obrigado pelo retorno!
  13. Bom dia Renato! Alterei as const para let mas não funcionou. Os métodos que utilizo antes desse são o NFE_Inicializar e o NFE_ConfigGravarValor que funcionam corretamente. Simplifiquei ao máximo o método NFe_DistribuicaoDFePorUltNSU mas ao chegar nele é acusado o erro Segmentation fault ou é gerado o log em anexo. ACBrLibNFE-20231013.log
  14. Ainda com relação ao problema, na maioria das vezes (independente do tamanho so buffer) o erro Segmentation Fault é retornado. No entanto, algumas vezes o código executa e retorna o erro: 'WebService Distribuição de DFe:- Inativo ou Inoperante tente novamente.\n' + 'Erro Interno: -2\n' + 'Erro HTTP: 500\n' + 'URL: https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx\n' + 'error:140AB18E:SSL routines:func(171):reason(398)'. Diego, peço desculpas por ter enviado o código por escrito. Tentei enviar por arquivo e não consegui. Todas as tentativas a página me deu erro com código -200.
  15. Pessoal, tentei implementar as sugestões, porém ainda recebo o erro de Segmentation fault. Vou deixar o código abaixo para que possam avaliar. import ref from "ref-napi"; import acbrDLL from "../acbrDLL"; import EnvProtocol from './protocols/Env.protocol'; import { AcbrProtocol } from './protocols/Acbr.protocol'; import AcbrIniProtocol from './protocols/AcbrIni.protocol'; import { Result } from "./Result"; import { Util } from './Util'; interface IResponse { success: boolean; data?: object | any | undefined; message?: string | undefined; } type ResponseDFes = { success: boolean; DistribuicaoDFe: any; message?: string; }; class Acbr implements AcbrProtocol { constructor( private readonly acbrIni: AcbrIniProtocol, private readonly env: EnvProtocol, private readonly result: Result, private readonly utilResult: Util ) { } private readonly BUFF_LENGTH = 16000; private readonly chaveCrypt: string = ""; private aloc_sResposta = Buffer.alloc(this.BUFF_LENGTH); private aloc_esTamanho = ref.alloc(ref.types.int, this.BUFF_LENGTH); init() { let result: number = 0; result = acbrDLL.NFE_Inicializar(this.acbrIni.path, this.chaveCrypt); this.result.check(result, "NFE_Inicializar"); this.setup(); } private setup() { this.acbrIni.setValue( "DFe", "Senha", "minha_senha" ); this.acbrIni.setValue( "Email", "Nome", this.env.getProperty("MAIL_DESCRIPTION")!! ); this.acbrIni.setValue( "Email", "Servidor", this.env.getProperty("MAIL_SERVER")!! ); this.acbrIni.setValue( "Email", "Usuario", this.env.getProperty("MAIL_USER")!! ); this.acbrIni.setValue( "Email", "Senha", this.env.getProperty("MAIL_PASSWORD")!! ); this.acbrIni.setValue( "Email", "Porta", this.env.getProperty("MAIL_PORT")!! ); this.acbrIni.setValue("Email", "SSL", this.env.getProperty("MAIL_SSL")!!); this.acbrIni.setValue("Email", "TLS", this.env.getProperty("MAIL_TLS")!!); } finish() { const result = acbrDLL.NFE_Finalizar(); this.result.check(result, "NFE_Finalizar"); } async getFinalResponse(length: number): Promise<IResponse> { return new Promise((resolve, reject) => { const aloc_sResposta = Buffer.alloc(length); const aloc_esTamanho = ref.alloc(ref.types.int, length); acbrDLL.NFE_UltimoRetorno.async( //@ts-ignore aloc_sResposta, aloc_esTamanho, (err: any, result: any) => { try { if (err) throw new Error(err); this.utilResult.checkResult(result); resolve({ success: true, message: Util.sTrim(aloc_sResposta.toString()), }); } catch (error) { reject({ success: false, message: error, }); } } ); }); } async checkPointerResponse( result: number, alocResposta: Buffer, alocLength: ref.Pointer<number> ): Promise<any> { try { this.utilResult.checkResult(result, "NFE_DistribuicaoDFePorUltNSU"); let message = Util.sTrim(alocResposta.toString()) || ""; const bufferLength = alocLength.deref(); let looping = true; if (bufferLength <this. BUFF_LENGTH) { looping = false; } else { if (message.length < bufferLength && message.length > this.BUFF_LENGTH) { looping = false; } else { if (message.length >= bufferLength) { looping = false; } } } if (looping === true) { // Aumentar o tamanho do buffer em 30% const novoTamanho = Math.round(bufferLength * 1.3); this.aloc_sResposta = Buffer.alloc(novoTamanho); this.aloc_esTamanho = ref.alloc(ref.types.int, novoTamanho); const resUltimoRetorno = await this.getFinalResponse(novoTamanho); if (!resUltimoRetorno.success) throw new Error(resUltimoRetorno.message); message = resUltimoRetorno.message || ""; } return { success: true, data: message, }; } catch (error) { return { success: false, data: error, }; } } getDFesPorUltNSU = async (num_ult_nsu_recebido: string) => { console.log("getDFesPorUltNSU"); return new Promise<ResponseDFes>(async (resolve, reject) => { const ufAutor = 35; const cnpjcpf = "06319316000127"; console.log('NFE_DistribuicaoDFePorUltNSU') acbrDLL.NFE_DistribuicaoDFePorUltNSU.async( ufAutor, cnpjcpf, num_ult_nsu_recebido, // @ts-ignore this.aloc_sResposta, this.aloc_esTamanho, async (err: any, result: number) => { try { if (err) { console.error(err); reject(err); } const response = await this.checkPointerResponse( result, this.aloc_sResposta, this.aloc_esTamanho ); console.log({ response }); } catch (error: any) { console.error(error); reject({ success: false, message: error.message, }); } } ); }); }; } export default Acbr;
  16. Boa tarde a todos! Estive fora na parte da manhã, então agora vou implementar os ajustes e efetuar os testes que sugeriram. Logo menos dou um retorno. Obrigado!
  17. Boa noite Renato! Primeiramente obrigado pelo retorno. Testei com diferentes valores para o buffer (até 16k) e infelizmente tive o mesmo erro registrado no log. Efetuei um teste com ultNSU errado e novamente, o mesmo erro.
  18. Boa Tarde Daniel! Alterei para 4096 e ainda da o erro abaixo. Creio que o certificado e a senha estejam sendo corretamente configurados no método "NFE_ConfigGravarValor", uma vez que se eu colocar a senha errada ou o diretório errado do certificado o erro muda. 10/10/23 15:52:56:433 - SetRetorno(-16, WebService Distribuição de DFe: - Inativo ou Inoperante tente novamente. Erro Interno: -2 Erro HTTP: 500 URL: https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx error:140AB18E:SSL routines:func(171):reason(398)
  19. Exatamente Diego, removi apenas para anexar aqui. Obrigado!
  20. Chequei novamente o SSL e aparenta estar corretamente instalado. Alguma outra possibilidade?
  21. Sim, estamos utilizando a versão 1.1.1 conforme o trecho do dockerfile abaixo. SSLType: [DFe] SSLCryptLib=1 -> cryOpenSSL SSLHttpLib=3 -> httpOpenSSL SSLXmlSignLib=4 -> xsLibXml2 Ambiente: [NFe] Ambiente=1 -> Homologação Versão OpenSSL: # Install specific OpenSSL version RUN wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1q.tar.gz \ && tar -zxf openssl-1.1.1q.tar.gz \ && cd openssl-1.1.1q \ && ./config && make && make install \ && ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1 \ && ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
  22. Diego, pelo windows usando a dll eu consigo executar e gera o erro conforme log abaixo. Talvez sanando esse erro ele passe a funcionar no linux? 09/10/23 14:51:46:832 - SetRetorno(0, ) 09/10/23 14:51:46:976 - NFe_DistribuicaoDFePorUltNSU(35,06319316000127,000000000001135) 09/10/23 14:51:46:977 - Travar 09/10/23 14:51:46:977 - NFe_DistribuicaoDFePorUltNSU, Executar 09/10/23 14:51:47:028 - Destravar 09/10/23 14:51:47:029 - SetRetorno(-16, WebService Distribuição de DFe: - Inativo ou Inoperante tente novamente. Erro Interno: -2 Erro HTTP: 500 URL: https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx error:140AB18E:SSL routines:func(171):reason(398) MotivoRetornadoDoWebService: "")
  23. Se eu não utilizar o método NFE_DistribuicaoDFePorUltNSU e utilizar um mock json no padrão do retorno esperado, não é apresentado o erro e o código executa corretamente.
  24. Diego, efetuei alguns testes aqui alterando esses parâmetros, criando pastas especificas dentro da "tmp" para os PathNFe, PathInu e PathEventos, alterando o Download.SepararPorNome como 0 (não) e mesmo assim enfrento o mesmo problema. Já efetuei diversas tratativas de configuração para liberação de escrita nas pastas. Não apenas na lambda da AWS mas também localmente no meu WSL Ubuntu eu enfrento esse problema. Os arquivos de logs são gerados corretamente dentro da pasta "./tmp/acbr/logs" e os reports dentro da pasta "./tmp/acbr/reports/". Tenho um microsserviço de emissão rodando onde utilizo diversos métodos como "NFE_Assinar", "NFE_Validar", NFE_GravarXML", etc e não tenho o erro de Segmentation Fault nele. Também pensei que pudesse ser algo relacionado a permissão, mas já verifiquei esse ponto diversas vezes.
  25. Sobre a permissão de pastas, mesmo executando chmod -R 777 e chmod o+x o erro é retornado. Segue ACBrLib.ini: acbrlib.ini
×
×
  • 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.