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报错
SSL 连接出错
ERR_SSL_PROTOCOL_ERROR
无法与服务器建立安全连接。可能是服务器出现了问题,也可能是您没有服务器要求的客户端身份验证证书。
但这就表示目的达到了,接下来,只要安装客户端证书即可。
客户端证书添加完毕,则最后一步,是将证书“迁移”到USBKEY内验证
未完, 碰到其他问题