From df8e0ecefacc56f5b4accaf22f5ca3ab8f091d36 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Thu, 10 May 2018 13:15:49 -0600 Subject: [PATCH] update for rill --- README.md | 77 ++++++++++++++++++---------------------------------- index.js | 2 +- package.json | 8 +++--- 3 files changed, 31 insertions(+), 56 deletions(-) diff --git a/README.md b/README.md index d6adddf..96d9ed4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Greenlock™ for Koa +# Greenlock™ for rill -An Automated HTTPS ACME client (Let's Encrypt v2) for Koa +An Automated HTTPS ACME client (Let's Encrypt v2) for rill Greenlock™ for [Browsers](https://git.coolaj86.com/coolaj86/greenlock.html), @@ -9,8 +9,8 @@ Greenlock™ for [Express.js](https://git.coolaj86.com/coolaj86/greenlock-express.js), [Node.js Cluster](https://git.coolaj86.com/coolaj86/greenlock-cluster.js), [hapi](https://git.coolaj86.com/coolaj86/greenlock-hapi.js), -**Koa**, -and [rill](https://git.coolaj86.com/coolaj86/greenlock-rill.js) +[Koa](https://git.coolaj86.com/coolaj86/greenlock-koa.js), +and **rill** | Sponsered by [ppl](https://ppl.family) Features @@ -29,7 +29,7 @@ which works with any middleware system. ## Install ``` -npm install --save greenlock-koa@2.x +npm install --save greenlock-rill@2.x ``` QuickStart @@ -42,7 +42,7 @@ QuickStart // Greenlock Setup // ////////////////////// -var greenlock = require('greenlock-koa').create({ +var greenlock = require('greenlock-rill').create({ version: 'draft-11' // Let's Encrypt v2 // You MUST change this to 'https://acme-v02.api.letsencrypt.org/directory' in production , server: 'https://acme-staging-v02.api.letsencrypt.org/directory' @@ -61,21 +61,21 @@ var greenlock = require('greenlock-koa').create({ }); -////////////////// -// Just add Koa // -////////////////// +/////////////////// +// Just add rill // +/////////////////// var http = require('http'); var https = require('https'); -var koa = require('koa'); -var app = koa(); +var Rill = require('rill'); +var app = new Rill(); -app.use(function *() { - this.body = 'Hello World'; +app.use(({ req, res }, next)=> { + res.body = 'Hello, World!'; }); // https server -var server = https.createServer(greenlock.tlsOptions, greenlock.middleware(app.callback())); +var server = https.createServer(greenlock.tlsOptions, greenlock.middleware(app.handler())); server.listen(443, function () { console.log('Listening at https://localhost:' + this.address().port); @@ -84,56 +84,31 @@ server.listen(443, function () { // http redirect to https var http = require('http'); -var redirectHttps = koa().use(require('koa-sslify')()).callback(); +var redirectHttps = require('redirect-https')(); http.createServer(greenlock.middleware(redirectHttps)).listen(80, function () { console.log('Listening on port 80 to handle ACME http-01 challenge and redirect to https'); }); ``` +Usage & Troubleshooting +============================ + +See + Handling a dynamic list of domains ======================== -If you handle multiple domains and you dynamically add new ones, -you'll want to replace the static list of domains in `approveDomains` -with a function like this: - -```js -function approveDomains(opts, certs, cb) { - // This is where you check your database and associated - // email addresses with domains and agreements and such - - // The domains being approved for the first time are listed in opts.domains - // Certs being renewed are listed in certs.altnames - if (certs) { - opts.domains = certs.altnames; - } - else { - // Do something to - opts.email = 'john.doe@example.com'; - opts.agreeTos = true; - } - - opts.communityMember = true; - - // NOTE: you can also change other options such as `challengeType` and `challenge` - // opts.challengeType = 'http-01'; - // opts.challenge = require('le-challenge-fs').create({}); - - cb(null, { options: opts, certs: certs }); -} -``` +In the oversimplified exapmple above we handle a static list of domains. +If you add domains programmatically you'll want to use the `approveDomains` +callback. **SECURITY**: Be careful with this. If you don't check that the domains being requested are the domains you allow an attacker can make you hit your rate limit for failed verification attempts. -See the +We have a [vhost example](https://git.coolaj86.com/coolaj86/greenlock-express.js/src/branch/master/examples/vhost.js) -for an idea of how this is done. +that allows any domain for which there is a folder on the filesystem in a specific location. - -More Usage & Troubleshooting -============================ - -See +See that example for an idea of how this is done. diff --git a/index.js b/index.js index 9b00c5f..358e2fe 100644 --- a/index.js +++ b/index.js @@ -3,6 +3,6 @@ module.exports = require('greenlock-express'); module.exports._greenlockExpressCreate = module.exports.create; module.create = function (opts) { - opts._communityPackage = opts._communityPackage || 'greenlock-koa'; + opts._communityPackage = opts._communityPackage || 'greenlock-rill'; return module.exports._greenlockExpressCreate(opts); }; diff --git a/package.json b/package.json index 038c0d7..b91955f 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,14 @@ { - "name": "greenlock-koa", + "name": "greenlock-rill", "version": "2.1.2", - "description": "An Automated HTTPS ACME client (Let's Encrypt v2) for Koa", + "description": "An Automated HTTPS ACME client (Let's Encrypt v2) for rill", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", - "url": "git+https://git.coolaj86.com/coolaj86/greenlock-koa.js.git" + "url": "git+https://git.coolaj86.com/coolaj86/greenlock-rill.js.git" }, "keywords": [ "acme", @@ -19,7 +19,7 @@ "freessl", "free ssl", "https", - "koa", + "rill", "le", "letsencrypt", "node",