GithubHelp home page GithubHelp logo

adfinis / acme-powerdns Goto Github PK

View Code? Open in Web Editor NEW
7.0 15.0 0.0 1.3 MB

An ACME Client which talks to PowerDNS to handle the DNS Challenge-Response.

License: GNU General Public License v3.0

Python 99.89% Shell 0.08% Makefile 0.03%
acme acme-client letsencrypt powerdns automation python

acme-powerdns's Introduction

ACME PowerDNS

ACME PowerDNS is a Let's Encrypt client which makes the ACME challenge response with PowerDNS. The big benefit of doing the ACME challenge response over DNS is, that a central server can validate each certificate signing request without access to the web-servers. There is also no modification needed on the web-server.

REQUIREMENTS

  • Python >= 3.4

INSTALLATION

Clone the git repository to a local directory and install it inside a virtualenv.

mkdir -p /opt/acme-powerdns
git clone https://github.com/adfinis-sygroup/acme-powerdns.git \
        /opt/acme-powerdns/acme-powerdns
python3 -m venv --without-pip /opt/acme-powerdns/venv
. /opt/acme-powerdns/venv/bin/activate
python /opt/acme-powerdns/acme-powerdns/.testdata/get-pip.py

Create your certificate signing request directories and your directories for the certificates.

mkdir -p /etc/acme-powerdns/{csr,live}

Create your configuration file /etc/acme-powerdns/settings.yml:

---

directory_url: 'https://acme-staging.api.letsencrypt.org/directory'
days: 30
updater: powerdns

powerdns:
  server: 'https://api.example.com/'
  username: '<user>'
  password: '<password>'

directories:
  - account_key: /etc/acme-powerdns/account.key
    csr:         /etc/acme-powerdns/csr
    cert:        /etc/acme-powerdns/live

# vim: set ft=yaml sw=2 ts=2 et wrap tw=76:

Multiple accounts are possible with multiple directories. Each directory is linked to one account.

USAGE

The command acme-powerdns will do the following:

  1. Search for files inside the csr directories (setting directories -> csr).
  2. Read those files as certificate signing request (be aware, no other files are allowed inside the csr directories).
  3. Validate the dns entries of each csr.
  4. Get certificates from acme directory (e.g. Let's Encrypt).
  5. Store certificates to cert directories (setting directories -> cert).

LICENSE

GNU GENERAL PUBLIC LICENSE Version 3

See the LICENSE file.

acme-powerdns's People

Contributors

winged avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.