Я пытаюсь подключиться к службе SOAP, для которой требуется сертификат в моем проекте NodeJS.
Я использую мыло , и вот как я пытаюсь получить к нему доступ:
const soap = require('soap');
(...)
let sslOptions = {
key: fs.readFileSync(keyPath),
cert: fs.readFileSync(certPath)
};
let sslHeaders = {
Authorization: {
user: 'Z100079',
pass: password
}
};
Service.GetLossRatio = function (contractID, start, end, asOf, cb) {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
let args = {
contractID: contractID,
start: start,
end: end,
asOf: asOf
};
soap.createClientAsync(url,
{
//request : specialRequest,
wsdl_options: sslOptions,
wsdl_headers: sslHeaders
})
.then((client) => {
client.setSecurity(
new soap.ClientSSLSecurityPFX(
certCerPath
)
);
client.LossratioService.LossratioPort.calculate(args, (err, res) => {
if (err) {
console.log(err);
return cb(err);
}
console.log(res);
return cb(null, res);
});
})
.catch((e) => {
console.log(e);
cb(e);
});
};
При получении LossratioPort.calculate () возникает ошибка «Неправильный тег».
Я понятия не имею, что означает эта ошибка, я не могу найти много документации об этой конкретной ситуации, документация "мыла" показывает только краткое объяснение того, как сделать запрос с сертификатами, но не намного
Я знаю, что сертификаты действительны, и я попробовал все сгенерированные сертификаты из файла .pem (.p12 и .cer). Я просто хочу быть уверен, что что-то получаю от службы. Либо то, что я действительно хочу, либо ошибка с сервера , а не с API.
Любая помощь?
Заранее спасибо.
UPDATE:
Я могу получить описание услуги через client.describe (), хотя:
{ "LossratioService": { "LossratioPort": { "вычислить": { "вход": "ТНС: вычислить", "выход": "TNS: calculateResponse"}, "пинг": { "вход":» ТНС: пинг», "выход": "TNS: pingResponse"}, "shakedownTest": { "вход": "ТНС: shakedownTest", "выход": "TNS: shakedownTestResponse"}}}} * +1022 *
Я также подтвердил ввод данных и отправляю по мере необходимости.