i have a special issue that i cannot fix. My setup is as follows:
i want to make a POST request from behind a proxy using also certificates. I tried to use node-fetch or axios for this but axios has a defect when using a POST request and proxys and in node-fetch you only can use a proxy or the certificate as an agent, not both. Now i tried to use the node build in https module and wrote the following code (data is dummy):
const body = {} const data = JSON.stringify(body) const options = { host: proxy.host, port: proxy.port, path: 'https://server:port/path', method: 'POST', headers: { 'Proxy-Authorization': auth, 'Accept': 'application/json', 'content-type': 'application/json', 'requestid': 'ec69aa5d-52d8-4849-8b95-6e360f472860', 'testid': '9b8183ed-967c-4701-bfa4-dd8c0ec6bab1', }, key: fs.readFileSync('certificates/client.key.pem'), cert: fs.readFileSync('certificates/client.cert.pem'), agent: false } const req = https.request(options, (res) => { console.log('statusCode:', res.statusCode); console.log('headers:', res.headers); res.on('data', (d) => { process.stdout.write(d); }); }); req.write(data, () => { console.log(req) }); req.on('error', (e) => { console.error(e); }); req.end();
but this also does not work. It seams to me that the certificates are used for the proxy not for the actual URL in this case as i get the following error:
Error: write EPROTO 4348:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:c:\ws\deps\openssl\openssl\ssl\record\ssl3_record.c:332: at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:92:16) { errno: 'EPROTO', code: 'EPROTO', syscall: 'write' }
triggering the request with CURL works with no problems.
can you assist here somehow? Perhaps suggest another library that i can use for making this complex request?
thanks,
Flaviu
Top comments (0)