gpt4 book ai didi

node.js - 混淆 SSL 与 Node 和使用 cURL

转载 作者:太空宇宙 更新时间:2023-11-03 13:26:03 31 4
gpt4 key购买 nike

我已将我的安全 Node 服务器设置为:

var HTTPSOptions = {
hostname: config.hostname,
cert: fs.readFileSync(config.ssl.cert_path),
key: fs.readFileSync(config.ssl.key_path),
requestCert: true,
rejectUnauthorized: false,
passphrase: config.ssl.ca_key_password
};
HTTPSOptions.agent = new https.Agent(HTTPSOptions);
var httpsServer = https.createServer(HTTPSOptions, app).listen(config.https_port, function () {
console.info("HTTPS server running on %d", config.https_port);
});

我还为我的一个客户生成了一个 client.keyclient.crtclient.csr 并用服务器的 .key.crt

现在,我想从客户端连接到我的 API。在阅读 cURL 的工作原理时,我使用了:

curl --key client.key --cert client.crt:clientPassword mySecureSite.com\api\call

这工作正常,除了如果我提供任何 key /证书或任何密码,或者即使我不提供任何 key /证书,相同的代码也可以工作!

谁能教教我吗?

最佳答案

您已将服务器设置为通过 HTTPS 与任何客户端进行通信。如果您希望将与您通信的客户端限制为具有特定证书的客户端,则需要在服务器代码中进行额外检查。

Nate Good wrote a tutorial that might point you down the right path.下面是一个片段,可以让您了解要研究的事情:

https.createServer(options, function (req, res) {
if (req.client.authorized) {
res.writeHead(200, {"Content-Type": "application/json"});
res.end('{"status":"approved"}');
} else {
res.writeHead(401, {"Content-Type": "application/json"});
res.end('{"status":"denied"}');
}
}).listen(443);

关于node.js - 混淆 SSL 与 Node 和使用 cURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30308586/

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