最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

使用SSL的Node中的SOAP请求

运维笔记admin11浏览0评论

使用SSL的Node中的SOAP请求

使用SSL的Node中的SOAP请求

最近,我一直在使用SOAP请求。

我设法使用node-soap模块能够向http服务发送成功的请求。但是,现在我想用它向外部https Web服务发送请求。

我已经设法使用带有cUrl的.cer文件发送SSL请求。但是当在node.js代码中尝试这个时,我会遇到错误。根据我的阅读(参见node-soap模块上的ClientSSLSecurity),我需要一个密钥(以.key格式)和一个证书(以.pem格式)。我不知道这是否需要私钥?我设法从我的.cer文件中提取公钥。

我试过以下代码:

var createSoapClient = function (){
    soap.createClient(url, function(err,client){
        client.setSecurity(new soap.ClientSSLSecurity(
            'mycert.cer',
            'pubkey.key'
        ));
        if(err)
            console.error(err);
        else {
            client.MyOperation(args,function(err,response){
                if(err){
                    console.error(err);
                }
                else{
                    console.log(response);
                }
            })
        }
    });
}

但是,这会导致以下错误消息:

Error: error:0906D06C:PEM routines:PEM_read_bio:no start line

我错过了什么?它是私钥吗?

谢谢!

回答如下:

根据npm发现的包,关于ClientSSLSecurity:

https://www.npmjs/package/axl-node-soap
https://www.npmjs/package/soap-x509
https://www.npmjs/package/strong-soap#clientsslsecurity
https://www.npmjs/package/soap#clientsslsecurity

我假设您向ClientSSLSecurity传递了错误的参数。它似乎取了密钥然后证书,你传递证书然后密钥。

尝试做这样的事情:

   client.setSecurity(new soap.ClientSSLSecurity(
        'pubkey.key',
        'mycert.cer'

    ));

你用的是哪个套餐?


你是一对密钥/证书可能是错误的

尝试重新生成证书:

openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem
openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out server.crt

然后将key.pem作为密钥传递,将server.crt作为证书传递。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论