Implement client certificate middleware

This commit is contained in:
Maciej Małecki 2014-03-17 16:47:09 +01:00
parent 7e9f540194
commit 802ca190ee

View file

@ -28,6 +28,7 @@ var argv = require('optimist').argv;
var LamassuConfig = require('lamassu-config');
var atm = require('lamassu-atm-protocol');
var format = require('util').format;
var clientCertificateAuth = require('client-certificate-auth');
var conString, dbConfig, config;
@ -54,6 +55,17 @@ config.load(function(err, conf) {
atm.init(app, conf.config);
if (argv.https) {
app.use(clientCertificateAuth({ rejectUnauthorized: false }, function(cert, done) {
config.isAuthorized(cert.fingerprint, function(err, authorized) {
if (err) {
console.error('Client certificate authorization failed', err.message);
return done(false);
}
done(authorized);
});
}));
var testkeys = path.join(__dirname, '..', 'testkeys');
var privateKey = fs.readFileSync(path.join(testkeys, 'privatekey.pem'));
var certificate = fs.readFileSync(path.join(testkeys, 'certificate.pem'));