Compare commits
	
		
			No commits in common. "master" and "v2.1.4" have entirely different histories.
		
	
	
		
	
		
							
								
								
									
										10
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								README.md
									
									
									
									
									
								
							@ -92,9 +92,11 @@ var leSni = require('le-sni-auto').create({
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var tlsOptions = {
 | 
			
		||||
// some default certificates that work with localhost
 | 
			
		||||
// (because default certificates are required as a fallback)
 | 
			
		||||
var tlsOptions = require('localhost.daplie.me-certificates').merge({
 | 
			
		||||
  SNICallback: leSni.sniCallback
 | 
			
		||||
};
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
https.createServer(tlsOptions, app);
 | 
			
		||||
```
 | 
			
		||||
@ -146,9 +148,9 @@ var leSni = require('le-sni-auto').create({
 | 
			
		||||
  renewWithin: 14 * 24 * 60 * 60 1000
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
var tlsOptions = {
 | 
			
		||||
var tlsOptions = require('localhost.daplie.com-certificates').merge({
 | 
			
		||||
  SNICallback: leSni.sniCallback
 | 
			
		||||
};
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
function app(req, res) {
 | 
			
		||||
  res.end("Hello, World!");
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								index.js
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								index.js
									
									
									
									
									
								
							@ -5,27 +5,19 @@ var HOUR = 60 * 60 * 1000;
 | 
			
		||||
var MIN = 60 * 1000;
 | 
			
		||||
var defaults = {
 | 
			
		||||
  // don't renew before the renewWithin period
 | 
			
		||||
  renewWithin: 30 * DAY
 | 
			
		||||
  renewWithin: 14 * DAY
 | 
			
		||||
, _renewWithinMin: 3 * DAY
 | 
			
		||||
  // renew before the renewBy period
 | 
			
		||||
, renewBy: 21 * DAY
 | 
			
		||||
, renewBy: 10 * DAY
 | 
			
		||||
, _renewByMin: Math.floor(DAY / 2)
 | 
			
		||||
  // just to account for clock skew really
 | 
			
		||||
, _dropDead: 5 * MIN
 | 
			
		||||
};
 | 
			
		||||
var promisify = require('util').promisify;
 | 
			
		||||
if (!promisify) {
 | 
			
		||||
  try {
 | 
			
		||||
    promisify = require('bluebird').promisify;
 | 
			
		||||
  } catch(e) {
 | 
			
		||||
    console.error("You're running an older version of node that doesn't have 'promisify'. Please run 'npm install bluebird --save'.");
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// autoSni = { renewWithin, renewBy, getCertificates, tlsOptions, _dbg_now }
 | 
			
		||||
module.exports.create = function (autoSni) {
 | 
			
		||||
 | 
			
		||||
  if (!autoSni.getCertificatesAsync) { autoSni.getCertificatesAsync = promisify(autoSni.getCertificates); }
 | 
			
		||||
  if (!autoSni.getCertificatesAsync) { autoSni.getCertificatesAsync = require('bluebird').promisify(autoSni.getCertificates); }
 | 
			
		||||
  if (!autoSni.renewWithin) { autoSni.renewWithin = autoSni.notBefore || defaults.renewWithin; }
 | 
			
		||||
  if (autoSni.renewWithin < defaults._renewWithinMin) {
 | 
			
		||||
    throw new Error("options.renewWithin should be at least " + (defaults._renewWithinMin / DAY) + " days");
 | 
			
		||||
@ -72,8 +64,7 @@ module.exports.create = function (autoSni) {
 | 
			
		||||
        certs: certs
 | 
			
		||||
      , tlsContext: 'string' === typeof certs.cert && tls.createSecureContext({
 | 
			
		||||
          key: certs.privkey
 | 
			
		||||
          // backwards/forwards compat
 | 
			
		||||
        , cert: (certs.cert||'').replace(/[\r\n]+$/, '') + '\r\n' + certs.chain
 | 
			
		||||
        , cert: certs.cert + certs.chain
 | 
			
		||||
        , rejectUnauthorized: autoSni.tlsOptions.rejectUnauthorized
 | 
			
		||||
 | 
			
		||||
        , requestCert: autoSni.tlsOptions.requestCert  // request peer verification
 | 
			
		||||
@ -131,7 +122,7 @@ module.exports.create = function (autoSni) {
 | 
			
		||||
      else if (certMeta.then) {
 | 
			
		||||
        //log(autoSni.debug, "PROMISED CERT", domain);
 | 
			
		||||
        // we are already getting a cert
 | 
			
		||||
        promise = certMeta;
 | 
			
		||||
        promise = certMeta
 | 
			
		||||
      }
 | 
			
		||||
      else if (now >= certMeta.expiresNear) {
 | 
			
		||||
        //log(autoSni.debug, "EXPIRED CERT");
 | 
			
		||||
@ -146,10 +137,7 @@ module.exports.create = function (autoSni) {
 | 
			
		||||
          // give the cert some time (2-5 min) to be validated and replaced before trying again
 | 
			
		||||
          certMeta.renewAt = (autoSni._dbg_now || Date.now()) + (2 * MIN) + (3 * MIN * Math.random());
 | 
			
		||||
          // let the update happen in the background
 | 
			
		||||
          autoSni.getCertificatesAsync(domain, certMeta.certs).then(autoSni.cacheCerts, function (error) {
 | 
			
		||||
            // console.error('ERROR in le-sni-auto:');
 | 
			
		||||
            // console.error(err.stack || err);
 | 
			
		||||
          })
 | 
			
		||||
          autoSni.getCertificatesAsync(domain, certMeta.certs).then(autoSni.cacheCerts);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // return the valid cert right away
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										5
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -1,5 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "le-sni-auto",
 | 
			
		||||
  "version": "2.1.9",
 | 
			
		||||
  "lockfileVersion": 1
 | 
			
		||||
}
 | 
			
		||||
@ -1,11 +1,11 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "le-sni-auto",
 | 
			
		||||
  "version": "2.1.9",
 | 
			
		||||
  "version": "2.1.4",
 | 
			
		||||
  "description": "An auto-sni strategy for registering and renewing letsencrypt certificates using SNICallback",
 | 
			
		||||
  "homepage": "https://git.coolaj86.com/coolaj86/le-sni-auto.js",
 | 
			
		||||
  "main": "index.js",
 | 
			
		||||
  "trulyOptionalDependencies": {
 | 
			
		||||
    "bluebird": "^3.5.1"
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "bluebird": "^3.4.1"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {},
 | 
			
		||||
  "scripts": {
 | 
			
		||||
@ -13,7 +13,7 @@
 | 
			
		||||
  },
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "https://git.coolaj86.com/coolaj86/le-sni-auto.js.git"
 | 
			
		||||
    "url": "git+https://git.coolaj86.com/coolaj86/le-sni-auto.js.git"
 | 
			
		||||
  },
 | 
			
		||||
  "keywords": [
 | 
			
		||||
    "le-sni",
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user