Giter VIP home page Giter VIP logo

certbot-dns-local's Introduction

certbot-dns-local

Domain registrar agnostic authenticator plugin for certbot

An authenticator plugin for certbot to support Let's Encrypt DNS challenges (dns-01) for domains managed by any registrar.

Why use this authenticator plugin?

  • There is no other authenticator plugin for your domain registrar.
  • Some domain registrars do not support fine-grained API permissions. Storing domain registrar credentials in a file on a web server might pose a security risk to all your domains.
  • Migrating from one domain registrar to another does not require a new authenticator plugin.

Installation

  1. Optionally install the netfilter_queue library. On Debian-based systems, run:

    apt install libnetfilter-queue-dev
    

    The library enables support for DNS challenge authentication if UDP port 53 is already occupied.

  2. Plugin installation:

    • If you are using certbot from your distribution repository or from the Python Package Index:
      pip install certbot-dns-local
      
    • If you are using certbot-auto, clone the repository, cd into the folder and run:
      /opt/eff.org/certbot/venv/bin/pip install certbot-dns-local
      
  3. Set up a DNS NS record for _acme-challenge.yourdomain.com pointing to the server which certbot is running on.
    For example:

    _acme-challenge.yourdomain.com. 300 IN NS yourdomain.com.
    

    Such a record has to be created for each subdomain which you want to obtain a certificate for.

Usage

A new certificate can be requested as follows:

certbot certonly -a certbot-dns-local:dns-local -d yourdomain.com -d '*.yourdomain.com'

Renewals will automatically be performed using the same authenticator by certbot.

Behind the curtain

Behind the curtain, the plugin will open a UDP server on port 53 in order to serve the DNS validations. In case binding to port 53 fails because it is already occupied by another application, it will fall back to packet interception using the netfilter_queue library.

certbot-dns-local's People

Contributors

blechschmidt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

5l1v3r1 ekmixon

certbot-dns-local's Issues

Specific subdomain supported?

I need to add SSL certificate using DNS challenge only for one specific subdomain, eg. my.domain.com. I have added DNS NS record _acme-challenge.my.domain.com. with value my.domain.com and the my.domain.com A record has my server ip, but the certbot fails on timeout

$: sudo certbot certonly -a certbot-dns-local:dns-local -d my.domain.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator certbot-dns-local:dns-local, Installer None
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for my.domain.com
Waiting 0 seconds for DNS changes to propagate
Waiting for verification...
Challenge failed for domain my.domain.com
dns-01 challenge for my.domain.com
Cleaning up challenges
Cleaning up challenges
Cleaning up challenges
Some challenges have failed.

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: my.domain.com
   Type:   dns
   Detail: DNS problem: query timed out looking up TXT for
   _acme-challenge.my.domain.com

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.