Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support ACME #3

Open
jhunt opened this issue Apr 1, 2021 · 0 comments
Open

Support ACME #3

jhunt opened this issue Apr 1, 2021 · 0 comments
Assignees

Comments

@jhunt
Copy link
Owner

jhunt commented Apr 1, 2021

I would like to be able to offer TLS certificates for netip.cc domains, with minimal additional machinery.

Here's an idea, leveraging a custom certbot plugin:

Whenever a dns-01 challenge needs to be met, the plugin will make the following request:

$ dig IN TXT _acme.cd83f3190e4.2ee40050c4a0d666eb1b8a1.8005f02bb2128d.1d2fa335397a2fb5._.1.2.3.4.netip.cc.

The cd83f3190e4.2ee40050c4a0d666eb1b8a1.8005f02bb2128d.1d2fa335397a2fb5 contains the acme challenge token. The _ label serves to delimit the token so that it can be split into arbitrary sub-labels to get under the 63-character per-label length limits.

In response to receiving this record, the netip server will then start answering the following query:

$ dig IN TXT _acme-challenge.1.2.3.4.netip.cc

With the concatenated ACME token. Those will stay in-memory forever, until the challenge buffer (a couple of megabytes) is full, at which point older tokens stop being answered.

I've tried to figure out if this is prone to abuse, and aside from potential for buffer overflows and other normal problems for network-attached software, I can think of none. The "open" nature of the _acme.* IN A query means that someone -- anyone -- can disrupt ACME renewals. However, there is no way to abuse the upstream Let's Encrypt servers, and it does allow me to open up the usage to non-operators (i.e. people who ❤️ netip.cc)

@jhunt jhunt self-assigned this Apr 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant