le-challenge-webroot.js/README.md

65 lines
2.3 KiB
Markdown
Raw Normal View History

2016-08-09 17:05:36 +00:00
[![Join the chat at https://gitter.im/Daplie/letsencrypt-express](https://badges.gitter.im/Daplie/letsencrypt-express.svg)](https://gitter.im/Daplie/letsencrypt-express?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
| [letsencrypt](https://github.com/Daplie/node-letsencrypt) (library)
| [letsencrypt-cli](https://github.com/Daplie/letsencrypt-cli)
| [letsencrypt-express](https://github.com/Daplie/letsencrypt-express)
2016-08-18 05:00:23 +00:00
| [letsencrypt-cluster](https://github.com/Daplie/letsencrypt-cluster)
2016-08-09 17:05:36 +00:00
| [letsencrypt-koa](https://github.com/Daplie/letsencrypt-koa)
| [letsencrypt-hapi](https://github.com/Daplie/letsencrypt-hapi)
|
2016-08-10 03:24:15 +00:00
# le-challenge-webroot
2016-08-05 07:54:57 +00:00
2016-10-12 22:51:41 +00:00
An fs-based strategy for node-letsencrypt for setting, retrieving,
2016-08-05 07:54:57 +00:00
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
-------
```bash
npm install --save le-challenge-fs@2.x
```
Usage
-----
```bash
var leChallenge = require('le-challenge-fs').create({
2016-10-12 22:51:41 +00:00
webrootPath: '~/letsencrypt/srv/www/:hostname/.well-known/acme-challenge' // defaults to os.tmpdir()
2016-10-14 15:51:34 +00:00
//, loopbackPort: 5001 // defaults to 80
2016-10-12 22:51:41 +00:00
, loopbackTimeout: 3000 // defaults to 3000ms
2016-08-05 07:54:57 +00:00
, debug: false
});
var LE = require('letsencrypt');
LE.create({
server: LE.stagingServerUrl // Change to LE.productionServerUrl in production
, challenge: leChallenge
});
```
2016-08-09 17:05:36 +00:00
NOTE: If you request a certificate with 6 domains listed,
it will require 6 individual challenges.
2016-08-05 07:54:57 +00:00
Exposed Methods
---------------
For ACME Challenge:
2016-08-09 17:05:36 +00:00
* `set(opts, domain, key, val, done)`
* `get(defaults, domain, key, done)`
* `remove(defaults, domain, key, done)`
2016-08-05 07:54:57 +00:00
For node-letsencrypt internals:
* `getOptions()` returns the internal defaults merged with the user-supplied options
2016-10-14 15:50:27 +00:00
* `loopback(defaults, domain, key, done)` is like get, but tests externally
* `test(defaults, domain, key, value, done)` tests `set`, `loopback`, and `remove` so we can be reasonably sure that the ACME server's challenge server will succeed