An fs-based strategy for node-letsencrypt for setting, retrieving, and clearing ACME challenges issued by the ACME server
Go to file
AJ ONeal c27b50a6da test that failing test fails :) 2016-10-12 16:59:03 -06:00
.gitignore Initial commit 2016-08-04 23:22:20 -06:00
LICENSE Initial commit 2016-08-04 23:22:20 -06:00
README.md fix #2 loopback port and timeout 2016-10-12 16:51:41 -06:00
index.js fix #2 loopback port and timeout 2016-10-12 16:51:41 -06:00
package.json v2.0.8 2016-10-12 16:52:02 -06:00
test.js test that failing test fails :) 2016-10-12 16:59:03 -06:00

README.md

Join the chat at https://gitter.im/Daplie/letsencrypt-express

| letsencrypt (library) | letsencrypt-cli | letsencrypt-express | letsencrypt-cluster | letsencrypt-koa | letsencrypt-hapi |

le-challenge-webroot

An fs-based strategy for node-letsencrypt for setting, retrieving, and clearing ACME challenges issued by the ACME server

This places the acme challenge in an appropriate directory in the specified webrootPath and removes it once the challenge has either completed or failed.

  • Safe to use with node cluster
  • Safe to use with ephemeral services (Heroku, Joyent, etc)

Install

npm install --save le-challenge-fs@2.x

Usage

var leChallenge = require('le-challenge-fs').create({
  webrootPath: '~/letsencrypt/srv/www/:hostname/.well-known/acme-challenge'   // defaults to os.tmpdir()
, loopbackPort: 5001                                                          // defaults to 80
, loopbackTimeout: 3000                                                       // defaults to 3000ms
, debug: false
});

var LE = require('letsencrypt');

LE.create({
  server: LE.stagingServerUrl                               // Change to LE.productionServerUrl in production
, challenge: leChallenge
});

NOTE: If you request a certificate with 6 domains listed, it will require 6 individual challenges.

Exposed Methods

For ACME Challenge:

  • set(opts, domain, key, val, done)
  • get(defaults, domain, key, done)
  • remove(defaults, domain, key, done)

For node-letsencrypt internals:

  • getOptions() returns the internal defaults merged with the user-supplied options
  • loopback(defaults, domain, key, value, done) test, by external means, that the ACME server's challenge server will succeed