ACME dns-01 challenge reference implementation for Greenlock v2.7+ (and v3).
Go to file
AJ ONeal 0285cf74ab update link 2019-04-02 05:34:35 +00:00
.gitignore initial commit 2016-10-14 13:39:54 -06:00
LICENSE initial commit 2016-10-14 13:39:54 -06:00
README.md update link 2019-04-02 05:34:35 +00:00
index.js move out junk test code 2018-05-12 19:17:26 -06:00
moz_test.js Full test working 2017-06-21 14:15:37 -07:00
package.json v2.3.2 2018-05-12 19:47:48 -06:00
test.js move out junk test code 2018-05-12 19:17:26 -06:00

README.md

le-challenge-dns

| A Root Project | greenlock.js (library) | greenlock-express.js | greenlock-cli.js | acme-v2.js |

A manual (interactive CLI) dns-based strategy for greenlock.js for setting, retrieving, and clearing ACME DNS-01 challenges issued by the ACME server

Prints out a subdomain record for _acme-challenge with keyAuthDigest to be tested by the ACME server.

You can then update your DNS manually by whichever method you use and then press [enter] to continue the process.

_acme-challenge.example.com   TXT   xxxxxxxxxxxxxxxx    TTL 60

Install

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

Usage

The challenge can be set globally like this:

var leChallengeDns = require('le-challenge-dns').create({
  debug: false
});

var Greenlock = require('greenlock');

Greenlock.create({
  server: LE.stagingServerUrl                               // Change to LE.productionServerUrl in production
, challengeType: 'dns-01'
, challenges: {
    'dns-01': leChallengeDns
  }
, approveDomains: [ 'example.com' ]
});

In can also be set in the approveDomains callback instead, like this:

function approveDomains(opts, certs, cb) {
  opts.challenges = { 'dns-01': leChallengeDns };
  ...
  cb(null, { options: opts, certs: certs });
}

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

Exposed Methods

For ACME Challenge:

  • set(opts, domain, challange, keyAuthorization, done)
  • get(defaults, domain, challenge, done)
  • remove(defaults, domain, challenge, done)

Note: get() is a no-op for dns-01.

For greenlock.js internals:

  • getOptions() returns the internal defaults merged with the user-supplied options
  • loopback(defaults, domain, challange, done) performs a dns lookup of the txt record
  • test(opts, domain, challange, keyAuthorization, done) runs set, loopback, remove, loopback