• Elvith Ma'for@feddit.org
      link
      fedilink
      arrow-up
      6
      ·
      4 days ago

      Does Trafik also allow DNS based challenges with additional certbot plugins, or does it only work by serving a challenge in /.well-known/?

      I’ve set up my internal homelab with LE certificates, but if I could get rid of certbot and do this automagically, it’d be nice…

      • Dhs92@programming.dev
        link
        fedilink
        arrow-up
        7
        ·
        4 days ago

        I have it setup to use DNS challenges through Cloudflare, but it supports different providers as well. I just add the labels to my docker container and voila, I have TLS

      • Rob Bos@lemmy.ca
        link
        fedilink
        English
        arrow-up
        4
        ·
        4 days ago

        Not all dns providers support acme, I’ve discovered to my recent annoyance. The one I use at work, for instance.

          • Rob Bos@lemmy.ca
            link
            fedilink
            English
            arrow-up
            2
            ·
            3 days ago

            Yeah. For wildcard DNS from letsencrypt, you can’t do HTTP validation, only DNS, which involves creating a TXT record.

            Your DNS provider needs to run an ACME server, which runs an API that’ll add the required TXT records on request.

            As I understand it.

            • Elvith Ma'for@feddit.org
              link
              fedilink
              arrow-up
              1
              ·
              3 days ago

              The DNS provider needs to provide an API, but not an ACME server.

              Your server contacts Lets Encrypt and wants a certificate - say for homeserver.example.com. It tells Let’s Encrypt to use DNS based authentication. Let’s encrypt answers with a challenge code, that you now publish as a txt record with a defined name via your providers API for this (sub)domain. Let’s encrypt then checks the TXT record and if it finds the challenge there, it sends you the certificate.

              • Rob Bos@lemmy.ca
                link
                fedilink
                English
                arrow-up
                1
                ·
                edit-2
                1 day ago

                Wouldn’t the authentication API provided by your DNS host be the ACME server?

                • Elvith Ma'for@feddit.org
                  link
                  fedilink
                  arrow-up
                  2
                  ·
                  3 hours ago

                  No, see also this diagram: https://www.digitalberry.fr/wp-content/uploads/2023/02/DNS-challenge-process.png

                  You use an ACME client (either explicitly with e.g. certbot or a webserver that has a client Iintegrated like Traefik, Caddy,…) to communicate with an ACME server (the CA, e.g. Let’s encrypt). Your ACME client asks for a certificate with a DNS challenge. It gets a code that you/the client needs to publish as a DNS record. Only then the client talks to your DNS provider and tells them to put a specific TXT record on your domain (or onanual mode: the client prints out the value and you need to put it there manually). After your DNS provider published it, your client tells the server to check the challenge and hand you your certificate.

                  Your DNS provider in this diagram is just that one small rectangle in the lower left.

                  Note: There’s nothing stopping your DNS provider to just do all of this, generate a certificate for you and providing you with a button in your account where you can download a certificate with a single click. Also if you are at a webhoster and only host a simple page there, they will probably also provide your with a TLS cert with the click of a single button.