support select CA file extension

This commit is contained in:
guox191
2019-03-25 22:47:49 +08:00
parent d9548ae7cf
commit 67151c071b
4 changed files with 89 additions and 28 deletions

View File

@@ -1,7 +1,5 @@
'use strict';
const DEFAULT_WEB_PORT = 8002; // port for web interface
const express = require('express'),
url = require('url'),
bodyParser = require('body-parser'),
@@ -16,9 +14,13 @@ const express = require('express'),
ip = require('ip'),
compress = require('compression');
const DEFAULT_WEB_PORT = 8002; // port for web interface
const packageJson = require('../package.json');
const MAX_CONTENT_SIZE = 1024 * 2000; // 2000kb
const certFileTypes = ['crt', 'cer', 'pem', 'der'];
/**
*
*
@@ -204,8 +206,9 @@ class webInterface extends events.EventEmitter {
res.setHeader('Access-Control-Allow-Origin', '*');
const _crtFilePath = certMgr.getRootCAFilePath();
if (_crtFilePath) {
const fileType = certFileTypes.indexOf(req.query.type) !== -1 ? req.query.type : 'crt';
res.setHeader('Content-Type', 'application/x-x509-ca-cert');
res.setHeader('Content-Disposition', 'attachment; filename="rootCA.crt"');
res.setHeader('Content-Disposition', `attachment; filename="rootCA.${fileType}"`);
res.end(fs.readFileSync(_crtFilePath, { encoding: null }));
} else {
res.setHeader('Content-Type', 'text/html');
@@ -213,25 +216,12 @@ class webInterface extends events.EventEmitter {
}
});
//make qr code
app.get('/qr', (req, res) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Content-Type', 'text/html');
const qr = qrCode.qrcode(4, 'M');
const targetUrl = req.protocol + '://' + req.get('host');
qr.addData(targetUrl);
qr.make();
const qrImageTag = qr.createImgTag(4);
const resDom = '<a href="__url"> __img <br> click or scan qr code to start client </a>'.replace(/__url/, targetUrl).replace(/__img/, qrImageTag);
res.end(resDom);
});
app.get('/api/getQrCode', (req, res) => {
res.setHeader('Access-Control-Allow-Origin', '*');
const fileType = certFileTypes.indexOf(req.query.type) !== -1 ? req.query.type : 'crt';
const qr = qrCode.qrcode(4, 'M');
const targetUrl = req.protocol + '://' + req.get('host') + '/fetchCrtFile';
const targetUrl = req.protocol + '://' + req.get('host') + '/fetchCrtFile?type=' + fileType;
const isRootCAFileExists = certMgr.isRootCAFileExists();
qr.addData(targetUrl);