gpt4 book ai didi

node.js - 请求 X509 证书

转载 作者:搜寻专家 更新时间:2023-10-31 22:33:09 26 4
gpt4 key购买 nike

我已经收到 X5​​09 证书(一个 .cer 文件),我可以 decode它,所以没有问题。现在我想在 Node 中用这个证书签署一个请求,但我不能让它工作:

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);
});
});

这失败了

Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
at Object.createCredentials (crypto.js:72:31)
at Object.connect (tls.js:857:27)
at Agent._getConnection (https.js:61:15)
at 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();

最佳答案

PEM_read_bio 需要 PEM 格式的证书,而您拥有“原始”DER 格式的证书。显然,您需要将证书转换为 PEM 格式。

顺便说一句,DER 格式的 .cer 文件不包含私钥,不能用于签署任何内容。

您需要重新检查 .cer 文件中实际包含的内容以及格式。

关于node.js - 请求 X509 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8618186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com