我试图通过SSL使用node-soap模块访问WSDL方法。我可以连接到服务器并获取client.desclibe()
,但是当我尝试访问WSDL上的方法时,我得到:
authorized: false,
authorizationError: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',
我尝试禁用SSL验证或使用ssl-root-cas
模块,但每次出现此错误时都不会出现这种情况。
这是我使用node-soap
的方式:
client = soap.createClient(wsdl_url, {
wsdl_options: {
key: fs.readFileSync('ssl/privatekey.key'),
cert: fs.readFileSync('ssl/public-certificate.crt'),
passphrase: 'password',
rejectUnauthorized: false,
},
forceSoap12Headers: true
},
function(err, client){
client.setSecurity(new soap.ClientSSLSecurity(
'ssl/privatekey.key' ,
'ssl/public-certificate.crt' ,
'ssl/new-ca.crt' ,
{
rejectUnauthorized: false,
passphrase: 'password'
}
));
client.ServerMethod({ name : 'value' }, function(err, result) {
console.log(result);
});
})
任何人都有建议出了什么问题?我需要SSL,所以我不能把它关掉。
答案 0 :(得分:2)
你可以在肥皂叫之前尝试这样的事吗?
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
希望它有所帮助。