nodejs 客户端证书设置。

最近的系统要求较高的安全等级

https+usbkey证书

https的操作很简单

openssl 生成ca 和证书,配置启动即可

生成成功后,类似这样。

类似这样

var options = {
key: fs.readFileSync(__dirname + '/server.key'),
cert: fs.readFileSync(__dirname+'/server.pem'),
ca: fs.readFileSync(__dirname+'/ca.crt'),
auth:"1CUI"
};
 server =https.createServer(options, app).listen(app.get('port'), function() {
        console.log('Express server listening on port ' + server.address().port);
    });

    app.close = function (callback) {
        server.close(callback);
    }

但验证客户端证书,网上查不到现成的

没办法了,查官方文档。

https://nodejs.org/api/https.html#https_https_createserver_options_requestlistener

https://nodejs.org/api/tls.html#tls_tls_createserver_options_secureconnectionlistener

找到了配置客户端证书的额外参数

requestCert:true //请求客户端证书

rejectUnauthorized:true //如果没有请求到客户端来自信任CA颁发的证书,拒绝客户端的连接

添加重新web服务。果断连接不上了

Chrome报错

ERR_SSL_PROTOCOL_ERROR

隐藏详细信息

无法与服务器建立安全连接。可能是服务器出现了问题,也可能是您没有服务器要求的客户端身份验证证书。

但这就表示目的达到了,接下来,只要安装客户端证书即可。

客户端证书添加完毕,则最后一步,是将证书“迁移”到USBKEY内验证

未完, 碰到其他问题