This commit is contained in:
AJ ONeal 2015-12-13 05:55:50 +00:00
parent 07e118889a
commit 73ed1ad7a9
4 changed files with 9 additions and 131 deletions

9
tests/README.md Normal file
View File

@ -0,0 +1,9 @@
moved the tests to the examples folder
```bash
node examples/commandline.js example.com,www.example.com user@example.com agree
```
Try it for yourself.
Go watch [Let's Encrypt in (exactly) 90 seconds](https://daplie.com/articles/lets-encrypt-in-literally-90-seconds/) and swap out the Caddy instructions with the node instructions.

View File

@ -1,37 +0,0 @@
'use strict';
var config = require('./config');
var Letsencrypt = require('../');
var leBinPath = '/home/user/.local/share/letsencrypt/bin/letsencrypt';
var LEP = require('letsencrypt-python');
var lep = LEP.create(leBinPath);
require('./serve-acme-challenges').create({
configDir: config.configDir
});
//var networkInterfaces = require('os').networkInterfaces();
//var ipify = require('ipify');
var le = Letsencrypt.create(
lep
// set some defaults
, { configDir: config.configDir
, workDir: config.workDir
, logsDir: config.logsDir
, webroot: true
, webrootPath: config.webrootPath
, server: LEP.stagingServer
}
, { cacheContextsFor: 1 * 60 * 60 * 1000 // 1 hour
, cacheRenewChecksFor: 3 * 24 * 60 * 60 * 1000 // 3 days
}
);
le.register({
agreeTos: true
, domains: ['lds.io']
, email: 'coolaj86@gmail.com'
});

View File

@ -1,92 +0,0 @@
'use strict';
var fs = require('fs');
var path = require('path');
var https = require('https');
var http = require('http');
var express = require('express');
var app = express();
module.exports.create = function (opts) {
function getSecureContext(domainname, opts, cb) {
if (!opts) { opts = {}; }
opts.key = fs.readFileSync(path.join(opts.configDir, 'live', domainname, 'privkey.pem'));
opts.cert = fs.readFileSync(path.join(opts.configDir, 'live', domainname, 'cert.pem'));
/*
opts.ca = fs.readFileSync(path.join(opts.configDir, 'live', domainname, 'chain.pem'), 'ascii')
.split('-----END CERTIFICATE-----')
.filter(function (ca) {
return ca.trim();
}).map(function (ca) {
return (ca + '-----END CERTIFICATE-----').trim();
});
*/
cb(null, require('tls').createSecureContext(opts));
}
// log the requests
app.use('/', function (req, res, next) {
console.log('[' + req.ip + ']', req.method + ' ' + req.headers.host, req.protocol + req.url);
next();
});
// handle static requests to /.well-known/acme-challenge
app.use(
'/.well-known/acme-challenge'
, express.static(opts.webrootPath, { dotfiles: undefined })
);
function serveHttps() {
//
// SSL Certificates
//
var server;
var localCerts = require('localhost.daplie.com-certificates');
var options = {
requestCert: false
, rejectUnauthorized: true
// If you need to use SNICallback you should be using io.js >= 1.x (possibly node >= 0.12)
, SNICallback: function (domainname, cb) {
var secureContext = getSecureContext(domainname);
cb(null, secureContext);
}
// If you need to support HTTP2 this is what you need to work with
//, NPNProtocols: ['http/2.0', 'http/1.1', 'http/1.0']
//, NPNProtocols: ['http/1.1']
, key: localCerts.key
, cert: localCerts.cert
//, ca: null
};
// Start the tls sni server4
server = https.createServer(options);
server.on('error', function (err) {
console.error(err);
});
server.on('request', app);
server.listen(opts.tlsSni01Port, function () {
console.log('[https] Listening', server.address());
});
}
function serveHttp() {
// Start the http server4
var insecureServer = http.createServer();
insecureServer.on('error', function (err) {
console.error(err);
});
// note that request handler must be attached *before* and handle comes in
insecureServer.on('request', app);
insecureServer.listen(opts.http01Port, function () {
console.log('[http] Listening', insecureServer.address());
});
}
serveHttps();
serveHttp();
};

View File

@ -1,2 +0,0 @@
curl http://localhost:80/.well-known/acme-challenge/hello
curl https://localhost.daplie.com:5001/.well-known/acme-challenge/hello