2016-08-25 5 views
0

私はPFXファイルを持っています。私は、PEMとKEYファイルを生成:SOAPリクエストと「SSLルーチン:ssl3_read_bytes:sslv3アラートハンドシェイクエラー」

  • openssl pkcs12 -in cert.pfx -out cert.pem -clcerts -nokeys

マイNode.jsの設定ファイルには、次のようになります。

var soap = require('soap'), 
fs = require('fs'); 
var url = 'https://file.wsdl'; 
var auth = "Basic " + new Buffer("username" + ":" + "password").toString("base64"); 

soap.createClient(url, {wsdl_options: { 

    cert: fs.readFileSync('cert/cert.pem'), 
    key: fs.readFileSync('cert/cert.key'), 
    strictSSL: false, 
    rejectUnauthorized: false 
}, wsdl_headers: {Authorization: auth}, endpoint : 'https://linkToPostHttpsRequest'}, function(err, client) { 

if(err) {throw err;} 

client.admGetSubscriber({input: {msisdn: asdasd}}, function(err, result){ 
    throw err; 
    console.log(result); 
}); 

Node.jsのは、私は私にこのエラーがスローされます示して:

Error: write EPROTO 101057795:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake 
failure:openssl\ssl\s3_pkt.c:1472:SSL alert number 40 
101057795:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake failure:openssl\ssl\s3_pkt.c:656: 

    at exports._errnoException (util.js:1007:11) 
    at WriteWrap.afterWrite (net.js:793:14) 

PFX証明書をインポートしようとしましたが、同じエラーが発生しました。私が含めるべき他の選択肢はありますか?

+0

* "SSL警告数40" *プロトコルと暗号の問題を示すことができます。 TLS 1.0以上を使用していることを確認してください。また、その中に共通の暗号スイートがあります。 'https:// linkToPostHttpsRequest'でサーバーをテストする必要があります。 – jww

+0

私にとって同じ問題です! :( – Sparw

+0

ここと同じ:///誰ですか? – user2670818

答えて

0

リクエストオプション 'ciphers'に 'ALL'を追加してみてください。

コード:

var soap = require('soap'), 
    request = require('request'), 
    fs = require('fs'); 
var url = 'https://file.wsdl'; 
var auth = "Basic " + new Buffer("username" + ":" + "password").toString("base64"); 

var request_with_defaults = request.defaults({ 'ciphers': 'ALL' }); 

soap.createClient(url, { 

    request: request_with_defaults, 
    wsdl_options: { 

     cert: fs.readFileSync('cert/cert.pem'), 
     key: fs.readFileSync('cert/cert.key'), 
     strictSSL: false, 
     rejectUnauthorized: false 
    }, wsdl_headers: { Authorization: auth }, endpoint: 'https://linkToPostHttpsRequest' 
}, function (err, client) { 

    if (err) { throw err; } 

    client.admGetSubscriber({ input: { msisdn: asdasd } }, function (err, result) { 
     throw err; 
     console.log(result); 
    }); 
}); 
関連する問題