Implement client certificate middleware
This commit is contained in:
parent
7e9f540194
commit
802ca190ee
1 changed files with 12 additions and 0 deletions
12
lib/app.js
12
lib/app.js
|
|
@ -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'));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue