Ответ 1
ECONNRESET
означает дальний конец - в вашем случае конечную точку на swish.net - бесцеремонно отключен от клиента https в вашей программе nodejs. Трудно точно понять, почему это так. Вероятно, из-за сбоя в системе безопасности. Надежные серверы не объясняют сбои безопасности; ведь зачем помогать кибер-крипам? Возможно, просмотр журнала на этом сервере расскажет вам больше.
Тем временем возможно, что пакет request
npm, который вы используете для переноса функции агента https узла, ничего не знает о файлах или паролях .pfx
, и поэтому пытается подключиться без каких-либо клиентских сертификатов.
Пакет pemutils
может позволить вам извлечь необходимую информацию из вашего файла .pfx
и использовать ее. Нечто подобное может работать (не отлажено).
var request = require('request');
var pemutils = require('pemutils');
var fs = require('fs');
var path = require('path');
const pfxFile = __dirname + '/certs/certificate.pfx';
pemutils.fromPfx({
path: pemutils.fromPfx({
path: '/path/to/my/cert.pfx',
password: 'myPass'
}, function(err, tlsresults) {
if(err) throw err;
var options = {
method: 'POST',
url: 'https://mss.cpc.getswish.net/swish-cpcapi/api/v1/paymentrequests',
headers: { 'Content-Type': 'application/json' },
agentOptions: {
cert: tlsresults.certificate,
key: tlsresults.key,
},
body: {
...
},
json: true
};
...
Обратите внимание, что метод .fromPfx
является асинхронным.