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

Usage no npm install needed!

<script type="module">
  import leChallengeFs from 'https://cdn.skypack.dev/le-challenge-fs';



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

An fs-based strategy for Greenlock for setting, retrieving, and clearing ACME (Let's Encrypt) 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)


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


var http01Challenge = require('le-challenge-fs').create({
  webrootPath: '/srv/www/:hostname/.well-known/acme-challenge'   // defaults to os.tmpdir() + '/' + 'acme-challenge'
, debug: false

var Greenlock = require('greenlock');

, challenges: {
    'http-01': http01Challenge

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)