示例程序:
服务器:
var fs = require('fs');
var https = require('https');
var options = {
key: fs.readFileSync('server-key.pem'),
cert: fs.readFileSync('server-crt.pem'),
ca: fs.readFileSync('ca-crt.pem'),
};
https.createServer(options, function (req, res) {
console.log(new Date()+' '+
req.connection.remoteAddress+' '+
req.method+' '+req.url);
res.writeHead(200);
res.end("hello world\n");
}).listen(4433);
客户端:
var fs = require('fs');
var https = require('https');
var options = {
hostname: 'localhost',
port: 4433,
path: '/',
method: 'GET',
ca: fs.readFileSync('ca-crt.pem')
};
var req = https.request(options, function(res) {
res.on('data', function(data) {
process.stdout.write(data);
});
});
req.end();
我在Linux服务器上使用openssl生成了密钥和证书。 但在运行客户端程序时,它显示为错误:自签名证书。通过引用某些网站甚至堆栈溢出讨论,有人提到使用名为 rejectUnauthorized:false 的选项,即使在使用证书进行安全数据传输时使用此参数没有用处。