错误:Node JS Client中的自签名证书

时间:2017-06-29 12:48:04

标签: node.js linux ssl https self-signed

示例程序:

  

服务器:

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 的选项,即使在使用证书进行安全数据传输时使用此参数没有用处。

  • 有没有办法信任Linux服务器中的证书
  • 任何示例程序,包含证书和节点JS程序?
  • 节点JS客户端连接到服务器?
  • 不使用 rejectUnauthorized:false

0 个答案:

没有答案