подключиться к soap веб-сервису с помощью сертификата - PullRequest
0 голосов
/ 24 марта 2020

Мне нужно подключиться к клиенту soap WS, но я получил только файл pem, содержащий RSA PRIVATE KEY и СЕРТИФИКАТ в одном файле.

Я сгенерировал файл publi c из закрытый файл pem из этой строки:

ssh-keygen -y -f ./wfc-client-WithPass.pem > ./wfc-client-WithPass.pem.pub

strong- soap README выделение, которое я мог бы использовать WSSecurityCert Я использовал его таким образом, но в данный момент я заблокирован, потому что мне нужно использовать сертификат файл для подключения, и пример запускается с уже подключенного клиента и добавляет сертификат для запроса каждого маршрута wsdl.

const fs = require('fs');
const path = require('path');
const {createClient, WSSecurityCert} = require('strong-soap').soap;

const location = 'Url of the soap but you can\'t see it';
const wsdl = `${location}?wsdl`;
const privateKey = fs.readFileSync(path.resolve('./wfc-client-WithPass.pem'));
const publicKey = fs.readFileSync(path.resolve('./wfc-client-WithPass.pem.pub'));
const password = 'MY SUPER PASSPHRASE';
createClient(wsdl, {
    rejectUnauthorized : false,
    strictSSL          : false,
    WSSecurityCert     : new WSSecurityCert(privateKey, publicKey, password, 'utf8')
}, (err, client) => {
    if (err) console.error(err); // Error happened here
    else {
        client.on('soapError', (err) => {
            console.error('soapError -> ', err);
        });
        // do my stuff
    }
});

Я получил эту ошибку.

Error: write EPROTO 37588:error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate:c:\ws\deps\openssl\openssl\ssl\record\rec_layer_s3.c:1544:SSL alert number 42

    at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:92:16) {
  errno: 'EPROTO',
  code: 'EPROTO',
  syscall: 'write'
}

Если кто-то может помоги мне.

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