mirror of
https://github.com/therootcompany/greenlock.js.git
synced 2024-11-16 17:29:00 +00:00
Compare commits
No commits in common. "7233d3809088adfa9068649bc1ad0a606bbbbe67" and "b56273257ab5d7605ec2572c2f3e28091fd14335" have entirely different histories.
7233d38090
...
b56273257a
60
examples/manage.js
Normal file
60
examples/manage.js
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
'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) {});
|
||||||
|
};
|
16
examples/server.js
Normal file
16
examples/server.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
'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,16 +231,9 @@ G.create = function(gconf) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
greenlock._single = function(args) {
|
greenlock._single = function(args) {
|
||||||
if ('string' !== typeof args.servername) {
|
if (!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