【发布时间】:2011-12-23 16:12:21
【问题描述】:
我收到了 X509 证书(一个 .cer 文件),我可以decode 它,所以没有问题。现在我想在节点中用这个证书签署一个请求,但我不能让它工作:
var https = require("https");
var fs = require("fs");
var options = {
host: 'management.core.windows.net',
path: '/my-subscription-id/services/hostedservices',
port: 443,
method: 'GET',
cert: fs.readFileSync("./SSLDevCert.cer"),
agent: false
};
var req = https.request(options, function(res) {
console.log("statusCode: ", res.statusCode);
console.log("headers: ", res.headers);
res.on('data', function(d) {
process.stdout.write(d);
});
});
这失败了
错误:错误:0906D06C:PEM 例程:PEM_read_bio:没有起始行
在 Object.createCredentials (crypto.js:72:31)
在 Object.connect (tls.js:857:27)
在 Agent._getConnection (https.js:61:15)
在 Agent._establishNewConnection (http.js:1183:21)
在 C# 中做同样的事情可以正常工作:
var req = (HttpWebRequest)WebRequest.Create(string.Format("https://management.core.windows.net/{0}/services/hostedservices", "my-subscription-id"));
req.ClientCertificates.Add(new X509Certificate2(File.ReadAllBytes("./SSLDevCert.cer"));
var resp = req.GetResponse();
【问题讨论】: