mirror of
https://github.com/therootcompany/greenlock.js.git
synced 2024-11-16 17:29:00 +00:00
Compare commits
2 Commits
b56273257a
...
7233d38090
Author | SHA1 | Date | |
---|---|---|---|
7233d38090 | |||
51cfb2001e |
@ -1,60 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
// tradeoff - lazy load certs vs DOS invalid sni
|
|
||||||
|
|
||||||
var Manager = module.exports;
|
|
||||||
|
|
||||||
var Cache = {};
|
|
||||||
|
|
||||||
Manager.create = function(conf) {
|
|
||||||
var domains = conf.domains;
|
|
||||||
var manager = {};
|
|
||||||
|
|
||||||
// { servername, wildname }
|
|
||||||
manager.getSubject = function(opts) {
|
|
||||||
if (
|
|
||||||
!opts.domains.includes(opts.domain) &&
|
|
||||||
!opts.domains.includes(opts.wildname)
|
|
||||||
) {
|
|
||||||
throw new Error('not a registered domain');
|
|
||||||
}
|
|
||||||
return opts.domains[0];
|
|
||||||
};
|
|
||||||
|
|
||||||
manager.add = function() {};
|
|
||||||
|
|
||||||
// { servername, wildname }
|
|
||||||
manager.configure = function(opts) {};
|
|
||||||
|
|
||||||
// { servername }
|
|
||||||
manager._contexts = {};
|
|
||||||
};
|
|
||||||
|
|
||||||
var manager = Manager.create({
|
|
||||||
domains: ['example.com', '*.example.com']
|
|
||||||
});
|
|
||||||
|
|
||||||
Cache.getTlsContext = function(servername) {
|
|
||||||
// TODO exponential fallback certificate renewal
|
|
||||||
if (Cache._contexts[servername]) {
|
|
||||||
// may be a context, or a promise for a context
|
|
||||||
return Cache._contexts[servername];
|
|
||||||
}
|
|
||||||
|
|
||||||
var wildname =
|
|
||||||
'*.' +
|
|
||||||
(servername || '')
|
|
||||||
.split('.')
|
|
||||||
.slice(1)
|
|
||||||
.join('.');
|
|
||||||
|
|
||||||
var opts = {
|
|
||||||
servername: servername,
|
|
||||||
domain: servername,
|
|
||||||
wildname: wildname
|
|
||||||
};
|
|
||||||
manager._contexts[servername] = manager
|
|
||||||
.orderCertificate(opts)
|
|
||||||
.then(function() {})
|
|
||||||
.catch(function(e) {});
|
|
||||||
};
|
|
@ -1,16 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
var http = require('http');
|
|
||||||
var https = require('http2');
|
|
||||||
var greenlock = require('../greenlock.js').create({
|
|
||||||
maintainerEmail: 'jon@example.com'
|
|
||||||
});
|
|
||||||
|
|
||||||
function app(req, res) {
|
|
||||||
res.end('Hello, Encrypted World!');
|
|
||||||
}
|
|
||||||
|
|
||||||
http.createServer(greenlock.plainMiddleware()).listen(8080);
|
|
||||||
https
|
|
||||||
.createServer(greenlock.tlsOptions, greenlock.secureMiddleware(app))
|
|
||||||
.listen(8443);
|
|
@ -231,9 +231,16 @@ G.create = function(gconf) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
greenlock._single = function(args) {
|
greenlock._single = function(args) {
|
||||||
if (!args.servername) {
|
if ('string' !== typeof args.servername) {
|
||||||
return Promise.reject(new Error('no servername given'));
|
return Promise.reject(new Error('no servername given'));
|
||||||
}
|
}
|
||||||
|
// www.example.com => *.example.com
|
||||||
|
args.wildname =
|
||||||
|
'*.' +
|
||||||
|
args.servername
|
||||||
|
.split('.')
|
||||||
|
.slice(1)
|
||||||
|
.join('.');
|
||||||
if (
|
if (
|
||||||
args.servernames ||
|
args.servernames ||
|
||||||
args.subject ||
|
args.subject ||
|
||||||
|
Loading…
x
Reference in New Issue
Block a user