Node.js: вызов мыльного веб-сервиса публичного органа: ошибка self_signed_cert_in_chain - PullRequest
0 голосов
/ 18 декабря 2018

Мне нужно вызвать веб-службу SOAP, запущенную сторонней организацией (официальной публичной организацией), которая обслуживается по протоколу HTTPS (SSL).Я отправил CSR и получил от них 3 сертификата: сертификат домена, сертификат выдающего центра сертификации и сертификат корневого центра сертификации.Теперь я могу сделать следующее:

  • получить доступ к их странице входа через HTTPS с помощью cUrl, указав параметры --cert, --key и --cacert в командной строке;
  • вызывать веб-службу с помощью пользовательского интерфейса SOAP (который также помог сгенерировать запрос XML SOAP);

Тем не менее, когда я пытаюсь вызвать веб-службу из приложения Node.js, используя «soap»Я получаю сообщение об ошибке self_signed_cert_in_chain.Код выглядит следующим образом:

var soap = require('soap');
var fs = require('fs');

var url = <the URL>;

<file names specified>

var myKey = fs.readFileSync(keyFileName);
var myCert = fs.readFileSync(certFileName);

var issuingCACert = fs.readFileSync(issuingCAFileName);
var rootCACert = fs.readFileSync(rootCAFileName);
var bundleCACert = fs.readFileSync(bundleCAFileName);

process.env.NODE_EXTRA_CA_CERTS = "<bundled certificate file>";
console.log(process.env);

soap.createClient(urlPropertiesSearch, {
    //pfx: pfxSet,
    key: myKey,
    cert: myCert,
    ca: [issuingCACert, rootCACert],
    //ca: bundleCACert,
    //passphrase: password,
    strictSSL: true,
    }, 
    function(err, client) {
        if(err) {
            console.log('client creation error: ', err);
        }
        else {

        }
    });

Как вы можете видеть, я попытался указать сертификаты выдачи CA и корневого CA по отдельности и объединить их в пакет, а также попытался установить переменную среды NODE_EXTRA_CA_CERTS.И все же ошибка сохраняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...