gpt4 book ai didi

javascript - Node.js,简单的 TLS 客户端/服务器

转载 作者:搜寻专家 更新时间:2023-10-31 23:52:27 25 4
gpt4 key购买 nike

我想使用 TLS 创建一个简单的安全客户端/服务器。我已按照 official doc 上的说明进行操作.但我不知道如何使用 openssl 创建自签名证书(不适用于我)。

这里代码:

服务器.js

const tls = require('tls');
const fs = require('fs');

const options = {
key: fs.readFileSync('server-key.pem'),
cert: fs.readFileSync('server-cert.pem'),

// This is necessary only if using the client certificate authentication.
requestCert: true,

// This is necessary only if the client uses the self-signed certificate.
ca: [ fs.readFileSync('client-cert.pem') ]
};

const server = tls.createServer(options, (socket) => {
console.log('server connected',
socket.authorized ? 'authorized' : 'unauthorized');
socket.write('welcome!\n');
socket.setEncoding('utf8');
socket.pipe(socket);
});
server.listen(8000, () => {
console.log('server bound');
});

客户端.js :

const tls = require('tls');
const fs = require('fs');

const options = {
// Necessary only if using the client certificate authentication
key: fs.readFileSync('client-key.pem'),
cert: fs.readFileSync('client-cert.pem'),

// Necessary only if the server uses the self-signed certificate
ca: [ fs.readFileSync('server-cert.pem') ]
};

const socket = tls.connect(8000, options, () => {
console.log('client connected',
socket.authorized ? 'authorized' : 'unauthorized');
process.stdin.pipe(socket);
process.stdin.resume();
});
socket.setEncoding('utf8');
socket.on('data', (data) => {
console.log(data);
});
socket.on('end', () => {
server.close();
});

我不知道为什么要使用两个不同的 key 对:

  • 客户端 key .pem
  • 客户端证书.pem

和:

  • 服务器 key .pem
  • 服务器证书.pem

谁能给我解释一下?对于自签名工作。

此致

约拉席恩

最佳答案

我解决了我的问题。

解决方案 here

关于javascript - Node.js,简单的 TLS 客户端/服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38892897/

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