【发布时间】:2015-04-30 23:52:59
【问题描述】:
我已经建立了 private Cloud Integration>Basic Secure Connection,但是要使用/访问它,我必须在我的 node.js 应用程序中使用 mutual TLS(其中也在 BlueMix 上启用)。
我看过这篇文章:https://developer.ibm.com/bluemix/2015/04/17/securing-destinations-tls-bluemix-secure-gateway/,它描述了一种使用私有安全连接的方法。
但我想做的是向安全连接发送一个 HTTPS 请求,以便它进入我的后端。在 node.js 中,我有一个处理用户操作的 HTTP 服务器,我正在使用以下代码发出 HTTPS 请求:
var https = require('https');
var fs = require('fs');
var options = {
host: cloud_ip,
port: cloud_port,
path: '/path_to_resource',
method: 'POST',
cert: fs.readFileSync('<endpoint>-basic-client-cert.pem'),
key: fs.readFileSync('<endpoint>-basic-private-key'),
ca: fs.readFileSync('DigiCertCA2.pem'),
agent: false,
};
var req = https.request(options, callback);
req.on('error', function(e) {
io.emit('message', 'Error: ' +JSON.stringify(e));
});
req.end()
我的后端没有任何响应,我试图监控 Wireshark(本地)发生的情况,似乎连接被拒绝/拒绝。我真的不知道应该如何处理从 BlueMix 下载的不同证书。如果有人可以提供帮助,我将不胜感激。
【问题讨论】:
-
回调在哪里定义?你也没有
req.on("data")。 -
@Jeff Sloyer:抱歉,我删除了回调,因为它与这个问题无关。回调在我的 options 变量之后定义,执行 req.on('data') 并在屏幕上打印一些内容。
标签: node.js integration ibm-cloud