add some tunnel support
This commit is contained in:
parent
fa730f04b3
commit
fa0990b02f
|
@ -0,0 +1,30 @@
|
|||
'use strict';
|
||||
|
||||
module.exports.create = function (opts/*, servers*/) {
|
||||
// servers = { plainserver, server }
|
||||
var tunnel = require('daplie-tunnel');
|
||||
var stunnel = require('stunnel');
|
||||
|
||||
|
||||
return tunnel.token({
|
||||
refreshToken: opts.refreshToken
|
||||
, email: opts.email
|
||||
, domains: [ opts.servername ]
|
||||
}).then(function (result) {
|
||||
// { jwt, tunnelUrl }
|
||||
stunnel.connect({
|
||||
token: result.jwt
|
||||
, stunneld: result.tunnelUrl
|
||||
, locals: [
|
||||
{ protocol: 'https'
|
||||
, hostname: opts.servername
|
||||
, port: opts.port
|
||||
}
|
||||
, { protocol: 'http'
|
||||
, hostname: opts.servername
|
||||
, port: opts.insecurePort || opts.port
|
||||
}
|
||||
]
|
||||
});
|
||||
});
|
||||
};
|
5
serve.js
5
serve.js
|
@ -181,7 +181,7 @@ function createServer(port, pubdir, content, opts) {
|
|||
|
||||
server.on('request', function (req, res) {
|
||||
console.log('[' + req.method + '] ' + req.url);
|
||||
if (!req.socket.encrypted) {
|
||||
if (!req.socket.encrypted && !/\/\.well-known\/acme-challenge\//.test(req.url)) {
|
||||
opts.redirectApp(req, res);
|
||||
return;
|
||||
}
|
||||
|
@ -424,6 +424,9 @@ function run() {
|
|||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
require('./lib/tunnel.js').create(opts);
|
||||
}
|
||||
|
||||
Object.keys(opts.ifaces).forEach(function (iname) {
|
||||
var iface = opts.ifaces[iname];
|
||||
|
|
Loading…
Reference in New Issue