node-dfe icon indicating copy to clipboard operation
node-dfe copied to clipboard

Erro ao acessar ws sefaz

Open juniorschroder opened this issue 3 years ago • 11 comments

alguem tem alguma ideia?

Error: unable to get local issuer certificate at TLSSocket.onConnectSecure (_tls_wrap.js:1497:34) at TLSSocket.emit (events.js:315:20) at TLSSocket._finishInit (_tls_wrap.js:932:8) at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:706:12) { code: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY' }

Estou usando certificado pfx... ja tentei tmb exportar pra pem e key ... mesmo erro. cadeia de certificados raiz instalada na maquina.

node v14.16.1, macOS

teste realizado:

let cert = { key: null, pem: null, pfx: fs.readFileSync('/Users/juniorschroder/Downloads/xxxx.pfx'), password: 'xxxx' };

let dadosEmpresa: Empresa = { razaoSocial: 'TESTE', nomeFantasia: 'TEST', cnpj: '', CNAE: '', inscricaoEstadual: '', inscricaoMunicipal: '', inscricaoEstadualST: '', codRegimeTributario: '3', endereco: { logradouro: 'Rua Teste', numero: '123', complemento: '', bairro: 'Bairro Teste', municipio: 'Cachoeirinha', codMunicipio: '4303004', uf: 'RS', cUf: '43', cep: '99999999', telefone: '999999999', codPais: '1058', pais: 'BRASIL' }, certificado: cert, idCSC: '1', CSC: '' };

const status = new StatusServicoProcessor(dadosEmpresa, "2", "55");

const retorno = await status.consultarStatusServico(status.gerarXmlStatusServico("1.07", "2", "43"), cert);

juniorschroder avatar May 12 '21 01:05 juniorschroder

nas opçoes do certificado, tente passar rejectUnauthorized como false:

rejectUnauthorized: false

lealhugui avatar May 12 '21 13:05 lealhugui

Estou com o mesmo erro, tentei colocar o rejectUnauthorized como false mas continua igual.

HTTE0R avatar May 21 '21 00:05 HTTE0R

Tava analisando o codigo aqui... essa opção não existe na interface de certificado... porem tem um PR que ainda não foi "mergeada" na master do repo que adiciona essa funcionalidade: https://github.com/lealhugui/node-dfe/pull/43

juniorschroder avatar May 21 '21 02:05 juniorschroder

Estou com o mesmo problema, tentei desabilitar a verificação de ssl no Mac ( para testar ) mas continuei com o mesmo erro, no Postman Canary tentei fazer a chamada e deu certo, mas com apontamentos de ssl:

image

image

Se eu deixar ativo a verificação de certificado: image

Recebo o mesmo erro que aparece no retorno da lib: image

luanalmeidabs2 avatar Jun 01 '21 15:06 luanalmeidabs2

Alguém conseguiu resolver?

luanfvieira avatar Aug 18 '21 00:08 luanfvieira

Pessoal, ainda com problema?

lealhugui avatar Oct 26 '21 19:10 lealhugui

Ainda persiste. Testado na Sefaz GO.

luanfvieira avatar Oct 27 '21 13:10 luanfvieira

alguem conseguiu solucinar esse problema?

GabrielMachado11 avatar Jan 11 '22 19:01 GabrielMachado11

resolvi esse problema substituindo a biblioteca usada para fazer a requisição, optei por utilizar o axios. Nele passei a opção rejectedUnauthorized como false e resolveu meu problema

Ficou algo como:

const response = await axios.post(params.url, body, {
        headers: {
          'Content-Type': 'text/xml;charset=utf-8',
          SOAPAction: params.action,
        },
        httpsAgent: new https.Agent({
          pfx: fs.readFileSync(filePathCertificate),
          passphrase: certificatePassphrase,
          rejectUnauthorized: false,
        }),
      })

GabrielMachado11 avatar Feb 10 '22 19:02 GabrielMachado11

@GabrielMachado11 consegue fazer uma PR para a substituição do request pelo axios?

lealhugui avatar Feb 14 '22 01:02 lealhugui

See #49

lealhugui avatar Feb 14 '22 01:02 lealhugui