feat: DNS challenge for wildcard certificate - #1093
Conversation
| error, http_error, cron_error, hook_error, warning, | ||
| http_server_short, http_client_short, | ||
| compute_short, push_short, copycat_short, bundler_short | ||
| compute_short, push_short, copycat_short, bundler_short, tls |
There was a problem hiding this comment.
We always want to display tls events?
There was a problem hiding this comment.
There is a certain time between when we can serve traffic, and we should output at least 2 events:
- Requesting a certificate
- Downloaded certificate
Errors should be displayed as well. Everything else can fall into debug_tls.
Other option is to seperate into tls, debug_tls and tls_error, but I'm not sure if this will be too complex for this use case.
|
|
||
| info(_) -> | ||
| #{ exports => [<<"request">>, <<"well-known">>, <<"obtain">>] }. | ||
| #{ exports => [ |
There was a problem hiding this comment.
Please format properly.
| end. | ||
|
|
||
| wait(Delay, State) -> | ||
| ?event(tls, {wait, {delay, Delay}}), |
There was a problem hiding this comment.
tls_wait right? Else it will just spam wait on the console without saying why we are waiting.
| @@ -0,0 +1,282 @@ | |||
| # ACME DNS-01 with DigitalOcean or Cloudflare | |||
There was a problem hiding this comment.
Is this actually limited to DigitalOcean or Cloudflare, or a full implementation of the protocol? If the latter, we should frame the docs from the POV of the general case first, with specifics as needed for the common providers.
There was a problem hiding this comment.
To support the DNS-01 challenge, we need to modify the DNS property via the provider. To do this, we need access to the API, which varies by provider. I can change this to a device so we can extend it without recompiling.
Eg.
dns-challenge-digitalocean@1.0dns-challenge-cloudflare@1.0
This PR adds support for DNS challenge, which is used when a wildcard subdomain is needed.
This supports the following providers: DigitalOcean and Cloudflare.
For more details on how it works, please read the documentation.
ToDo