node-dfe
node-dfe copied to clipboard
Erro ao acessar ws sefaz
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);
nas opçoes do certificado, tente passar rejectUnauthorized como false:
rejectUnauthorized: false
Estou com o mesmo erro, tentei colocar o rejectUnauthorized como false mas continua igual.
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
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:
Se eu deixar ativo a verificação de certificado:
Recebo o mesmo erro que aparece no retorno da lib:
Alguém conseguiu resolver?
Pessoal, ainda com problema?
Ainda persiste. Testado na Sefaz GO.
alguem conseguiu solucinar esse problema?
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 consegue fazer uma PR para a substituição do request
pelo axios
?
See #49