带有证书的soap.createClient-错误此套接字已关闭

时间:2018-08-23 15:48:33

标签: node.js sockets soap ssl-certificate node-soap

我试图在Internet上的许多站点(也在此处)中找到此解决方案,但未成功。 我还访问了社区支持的Gitter室(https://gitter.im/vpulim/node-soap),但没有成功。

我几乎没有想到要忘记stackoverflow,因为我从来没有找到问题的答案,老实说,我不是一个在尝试我的最大努力之前就寻求帮助的人。我的问题已经被这样处理了。所以,最后一次尝试!

我正在尝试使用soap npm软件包来访问受保护的SOAP端点。实际上,此端点具有两种保护,即通过IP和使用特定证书(即设备证书)的请求。

有了此证书,我可以通过浏览器正确访问端点,并且还检查了公司防火墙上的所有请求(浏览器和通过Node.JS)是否都到达了端点。

我虽然可能是与我的机器有关的问题,因为证书类型是设备,并且可能具有这种验证,所以我将代码运行在如今拥有证书的服务器上,并调用此端点通过Java应用程序。

错误是相同的,我不清楚。我无法对此调查进行深入研究。错误是:

Error: This socket is closed
at TLSSocket.Socket._writeGeneric (net.js:679:19)
at TLSSocket.<anonymous> (net.js:669:12)
at TLSSocket.g (events.js:292:16)
at emitNone (events.js:91:20)
at TLSSocket.emit (events.js:185:7)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1073:10)

代码是:

import {createClient} from 'soap';
import {readFileSync} from 'fs';

const client = createClient('https://myprotectedendpoint.com/ws/xpto/XptoSearch.asmx?wsdl', {
    wsdl_options: {
        pfx: readFileSync('./certs/mycert.pfx'),
        passphrase: 'MySecret',
        ciphers: 'TLS_RSA_WITH_3DES_EDE_CBC_SHA',
    }
}, function(err, client) {
    if (err) {
        console.log(err);
    } else {
        console.log(client);
    }	
})

有人可以尝试帮助我找到更好的调查方法吗?

真的很感谢您的宝贵时间。

0 个答案:

没有答案