我创建了一个结构证书来验证客户端 - >服务器,仅允许使用此步骤的CA识别的证书:https://jamielinux.com/docs/openssl-certificate-authority/create-the-root-pair.html
我用openssl检查了权限,然后它返回给我OK证书服务器和客户端,使用相同的CA.但是通过在服务器上将参数rejectUnauthorized设置为true,客户端无法连接。
我是否应该设置任何额外参数以允许我生成的证书进行身份验证?
----编辑
在客户端,我收到以下错误:“”ECONNRESET“socket挂断”
答案 0 :(得分:0)
我花了很长时间研究类似的问题,我写了这篇文章来讨论如何利用node.js挖掘各种OpenSSL问题:http://www.thedreaming.org/2016/09/27/nodejs-ssl/
简短的回答是,如果您在创建客户端连接时需要传递ca
参数。如果您将自签名证书存储在cert.pem
中,则客户端代码类似于:
var https = require('https');
var fs = require('fs');
var certificate = fs.readFileSync('cert.pem');
var options = {
host: serverHost,
port: 443,
path: '/',
ca: [certificate]
};
https.request(options, function(res) {
res.pipe(process.stdout);
}).end();