使用nodeJs soap获取未定义的客户端

时间:2018-07-18 17:45:52

标签: node.js ssl soap

我的问题是:我需要向服务器发出SSL SOAP请求,但是我需要通过PFX传递证书。我也需要进行基本身份验证。这是我的代码:

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

var url = 'https://servicos.ccee.org.br:443/ws/PingService?wsdl';
var pfx = fs.readFileSync('MY PFX FILE');

var soapHeader = {
  "codigoPerfilAgente": 68543,
  "Username": "MY USER",
  "Password": "PASSWORD"
};
soap.createClient(url, {
  wsdl_options: {
    pfx: pfx,
    strictSSL: true,
  }
}, function (err, client) {

  client.setSecurity(new soap.WSSecurity('MY USER', 'PASSWORD'))

  if (err) {
    throw err;
  }
  var args = {

    nome: "tio"
  };
  client.helloWorld(args, function (err, res) {

    client.addSoapHeader(soapHeader);

    if (err)
      throw err;
    console.log(res);
  });
});

问题是当我创建客户端并尝试在其中使用它时:

soap.createClient(url, {
wsdl_options: {
    pfx: pfx,
    strictSSL: true,
    }
}, function (err, client) {

client.setSecurity(new soap.WSSecurity('MY USER', 'PASSWORD'))

我有一个未定义的客户端。在创建客户端的过程中是否可以通过PFX?

我在互联网上进行了大量搜索,发现有一种使用wsdl_options传递PFX文件或传递.CRT和.PEM的方法。但是我没有找到任何很好的例子。我拥有所有3个文件(.CRT,PEM和PFX),并尝试使用:

client.setSecurity(new soap.ClientSSLSecurity(privateKey, publicKey));

但是在这种情况下,需要在设置setSecurity函数之前创建客户端。

感谢您的帮助!

0 个答案:

没有答案