Мне нужно подключиться к клиенту 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'
}
Если кто-то может помоги мне.