【发布时间】:2017-01-01 23:17:55
【问题描述】:
我有一个 PFX 文件。我生成了 PEM 和 KEY 文件:
openssl pkcs12 -in cert.pfx -out cert.pem -clcerts -nokeysopenssl pkcs12 -in cert.pfx -out cert.key -nocerts -nodes
我的 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 证书,但遇到了同样的错误。还有其他我应该包括的选项吗?
【问题讨论】:
-
“SSL 警报编号 40” 可能表示协议和密码存在问题。确保您使用的是 TLS 1.0 及更高版本,并且其中有一个通用密码套件。您必须在
https://linkToPostHttpsRequest测试服务器。 -
对我来说同样的问题! :(
-
这里一样 /// 有人吗?
标签: node.js ssl openssl soap-client