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

Why is there a --stateless option for http verification but not for dns verification? #1235

Closed
ProBackup-nl opened this issue Feb 4, 2018 · 10 comments

Comments

@ProBackup-nl
Copy link

Stateless DNS

Having a webserver setup that is not supported, as well as a DNS provider without an API, it would be nice to --issue and --renew --stateless.

Why does acme.sh --stateless only support web/http/nginx and not DNS verification?

@Neilpang
Copy link
Member

Neilpang commented Feb 5, 2018

stateless mode is only for nginx server

https://github.com/Neilpang/acme.sh/wiki/Stateless-Mode

@Neilpang Neilpang closed this as completed Feb 5, 2018
@ProBackup-nl
Copy link
Author

@Neilpang Why can't DNS verification do the verification process stateless? Is that an ACME API limit?

@Neilpang
Copy link
Member

Neilpang commented Feb 5, 2018

@ProBackup-nl
It could be in theory, but doesn't make any sense actually.

for http verification:

keyauthorization="$token.$thumbprint"

nginx server is suitable to return such string.

while for dns verification:

txt="$(printf "%s" "$keyauthorization" | _digest "sha256" | _url_replace)"

I have never heard any dns server can return such complex txt value.

what do you think ?

@ProBackup-nl
Copy link
Author

@Neilpang There are no DNS servers that can do, because the $token is not supplied to the DNS server in the request. The server would need to ask something like TXT for $token._acme-challenge.domain.tld. In such a case a DNS server in theory is able to construct the response dynamically.

@ProBackup-nl
Copy link
Author

A request has been posted ietf-wg-acme/acme#393

@gertvdijk
Copy link

@Neilpang There are no DNS servers that can do, because the $token is not supplied to the DNS server in the request. The server would need to ask something like TXT for $token._acme-challenge.domain.tld. In such a case a DNS server in theory is able to construct the response dynamically.

Uhm, IIUC, just like this Nginx regular expression for the URI, you could set up a wildcard subdomain too:

*._acme-challenge  IN TXT "$1.$thumbprint"

and you don't need anything dynamically on the DNS side, right?

@ProBackup-nl
Copy link
Author

ProBackup-nl commented May 12, 2019

@gertvdijk What is meant with "IIUC"? For which DNS software and starting from which version?

@gertvdijk
Copy link

@gertvdijk What is meant with "IIUC"?

If I Understand Correctly.

For which DNS software and starting from which version?

DNS wildcards! Exists since ever and all software supports that.

@bjmgeek
Copy link

bjmgeek commented May 15, 2019

PowerDNS supports scriptable dns records (in the Lua language) They could be used to make a stateless DNS record.

@gertvdijk
Copy link

gertvdijk commented May 15, 2019

@bjmgeek: I don't see how that's useful. All you need is a wildcard domain and a static value (similar to nginx regex match on location, static return content). LUA records are able to produce a value from a script, but exactly that is totally stateless here.

By the way, I like PowerDNS and even contributing to it occasionally, but I don't think it helps here.

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

4 participants