node-soap'UNABLE_TO_VERIFY_LEAF_SIGNATURE'错误

时间:2016-10-12 10:17:05

标签: node.js web-services ssl soap wsdl

我试图通过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,所以我不能把它关掉。

1 个答案:

答案 0 :(得分:2)

你可以在肥皂叫之前尝试这样的事吗?

process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';

希望它有所帮助。