DuckDNS + Let's Encrypt for Node.js - ACME dns-01 challenges w/ ACME.js and Greenlock.js
Go to file
AJ ONeal d1308f5aca update instructions for greenlock v4 2020-07-29 01:55:55 +00:00
lib v3.0.0: DuckDNS + Let's Encrypt for Node.js 2019-06-29 02:33:19 -06:00
.gitignore v3.0.0: DuckDNS + Let's Encrypt for Node.js 2019-06-29 02:33:19 -06:00
.jshintrc v3.0.0: DuckDNS + Let's Encrypt for Node.js 2019-06-29 02:33:19 -06:00
.prettierrc v3.0.0: DuckDNS + Let's Encrypt for Node.js 2019-06-29 02:33:19 -06:00
AUTHORS v3.0.0: DuckDNS + Let's Encrypt for Node.js 2019-06-29 02:33:19 -06:00
LICENSE v3.0.0: DuckDNS + Let's Encrypt for Node.js 2019-06-29 02:33:19 -06:00
README.md update instructions for greenlock v4 2020-07-29 01:55:55 +00:00
example.env v3.0.0: DuckDNS + Let's Encrypt for Node.js 2019-06-29 02:33:19 -06:00
index.js initial commit 2019-06-06 23:32:22 -06:00
package-lock.json v3.0.0: DuckDNS + Let's Encrypt for Node.js 2019-06-29 02:33:19 -06:00
package.json v3.0.1: fix link typo 2019-07-03 22:31:46 -06:00
test.js v3.0.0: DuckDNS + Let's Encrypt for Node.js 2019-06-29 02:33:19 -06:00

README.md

acme-dns-01-duckdns | a Root project

DuckDNS + Let's Encrypt for Node.js

This handles ACME dns-01 challenges, compatible with ACME.js, Greenlock.js, and more. Passes acme-dns-01-test.

Features

  • Compatible
    • Let's Encrypt v2.1 / ACME draft 18 (2019)
    • DuckDNS API
    • ACME.js, Greenlock.js, and others
  • Quality
    • node v6 compatible VanillaJS
    • < 100 lines of code
    • Zero External Dependencies*

* just @root/request which is also a Root project and has no dependencies at all

Install

npm install --save acme-dns-01-duckdns@3.x

Register and DuckDNS Domain and Save the API Token:

Usage

Then you can use this with any compatible ACME library, such as Greenlock.js or ACME.js.

Greenlock CLI

npx greenlock defaults --challenge-dns-01 acme-dns-01-duckdns --challenge-dns-01-token xxxx

Greenlock API

greenlock.manager.defaults({
	challenges: {
		'dns-01': {
			module: 'acme-dns-01-duckdns',
	        baseUrl: 'https://www.duckdns.org/update', // default
			token: 'xxxxxxx'
		}
	}
});

See Greenlock Express and/or Greenlock.js documentation for more details.

ACME.js

First you create an instance with your credentials:

var dns01 = require('acme-dns-01-duckdns').create({
	baseUrl: 'https://www.duckdns.org/update', // default
	token: 'xxxx'
});
acme.certificates.create({
	account,
	accountKey,
	csr,
	domains,
	challenges: { 'dns-01': dns01 }
});

See the ACME.js for more details.

Build your own

See acme-dns-01-test for more implementation details.

Tests

# node ./test.js domain-record api-token
node ./test.js example.duckdns.org xxxxxx

Authors

  • Aneem Patrabansha
  • AJ ONeal

See AUTHORS for contact info.

Legal

acme-dns-01-duckdns.js | MPL-2.0 | Terms of Use | Privacy Policy

Copyright 2019 The Root Group LLC